gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 00:24:15 29 4
gpt4 key购买 nike

我正在尝试将推送通知从我的 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 网络控制台发送推送通知,并在我的 iOS 设备上成功接收通知。我似乎无法让我的 NodeJS Firebase Admin 应用程序正常工作。感谢对此的任何帮助。

更新:我还想指出,即使使用 Swift 代码订阅 firebase 主题,指定的主题也不会出现在 Firebase 网络控制台上。我知道它需要几个小时才能出现在 firebase 网络控制台上,但自从我运行代码以将我的 iOS 设备订阅到 firebase 主题以来已经一周了。

我还尝试更改我的 NodeJS 代码以发送到单个设备而不是发送到主题,这很有效。只是发送到主题不起作用。我已将可能的问题缩小到 send to topic。会不会是我的 Swift 代码没有成功将我的 iOS 设备订阅到指定的主题?但这是我从 Firebase 文档中获得的确切片段。

最佳答案

想通了。事实证明,在 viewDidLoad() 中调用订阅代码不是一个好主意,因为该应用程序当时可能尚未完全连接到 FCM 和 APN。所以我在 AppDelegate 的 didRegisterForRemoteNotificationsWithDeviceToken 中重新定位了该代码。

现在它正在运行。

我从这个 stackoverflow 问题线程中得到了这个想法:Cannot receive push notification on iOS from Firebase 3.2.0 topics

希望这对遇到这个问题的人有帮助

关于ios - 从我的 NodeJS 应用程序发送推送通知消息不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43479900/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com