从我的Nodejs应用程序发送推送通知消息不起作用



我试图将推送通知从我的NodeJS服务器发送到我的iOS设备,但我无法正常工作。我正在执行Send to topic方法。我已经尝试了Firebase Admin(NODEJS(文档中的代码示例,但似乎不起作用。

这是我的nodejs代码:

const admin = require('firebase-admin');    // Firebase-admin module to send push notifications via firebase
const serviceAccount = require('./myprivatekey.json'); //privateKey.json file
// setup firebase admin
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: FIREBASE_URL
});
sendMessage('someTopic', 'test message');
function sendMessage(topicName, message) {
    // The topic name can be optionally prefixed with "/topics/".
    var topic = `/topics/${topicName}`;
    console.log(topic);
    // See the "Defining the message payload" section below for details
    var payload = {
        notification: {
            title: 'test title',
            body: message
        }
    };
    // Send a message to devices subscribed to the provided topic.
    admin.messaging().sendToTopic(topic, payload)
        .then(function (response) {
            // See the MessagingTopicResponse reference documentation for the
            // contents of response.
            console.log('Successfully sent message:', response);
        })
        .catch(function (error) {
            console.log('Error sending message:', error);
        });
}

这是我订阅该主题的Swift代码:

override func viewDidLoad() {
        super.viewDidLoad()
        FIRMessaging.messaging().subscribe(toTopic: "/topics/someTopic")
    }

运行nodejs应用程序时,我会获取Successfully sent message:日志,因此我不确定为什么我不收到iOS设备上的推送通知。

是的,我已经为开发和生产设置了必要的APN证书。我能够从Firebase Cloud Messaging Web控制台发送推送通知,并在我的iOS设备上成功接收通知。我似乎无法让我的NodeJS Firebase Admin应用程序正常工作。感谢任何帮助。

更新:我还想指出,即使使用Swift代码订阅Firebase主题,指定主题也不会出现在Firebase Web控制台上。我知道出现在Firebase Web控制台上需要几个小时,但是自从我运行代码以将iOS设备订阅到Firebase主题上已经有一个星期。

我还尝试更改我的nodejs代码以发送到单个设备而不是发送到主题,而这有效。这只是发送到主题的人。我将可能的问题范围缩小到send to topic。难道我拥有的SWIFT代码不是成功地将我的iOS设备订阅到指定的主题上吗?但这就是我从Firebase文档中获得的确切片段。

弄清楚了。事实证明,在viewDidLoad()中调用订阅代码是一个坏主意,因为该应用程序可能还没有完全连接到FCM和APN。因此,我在AppDelegate中的didRegisterForRemoteNotificationsWithDeviceToken中重新定位了该代码。

现在正在工作。

我从这个stackoverflow问题线程中得出了想法:无法从Firebase 3.2.0主题上接收iOS的推送通知

希望这可以帮助遇到此问题的任何人

相关内容

  • 没有找到相关文章

最新更新