Python Firebase Admin SDK 似乎成功,但我从未收到通知

标签 python ios firebase firebase-cloud-messaging firebase-admin

我正在尝试使用 Python Firebase Admin SDK 为我的移动应用发送推送通知。我已经使用 Firebase 控制台中的通知编辑器对其进行了测试,所以我知道我的设备可以接收推送通知,但是当我尝试使用 SDK 时,我从未收到任何消息。我也没有看到 Firebase 控制台通知页面上列出的通知。

这是我用来发送通知的确切代码(减去我的个人信息):

import firebase_admin
from firebase_admin import credentials, messaging

token = "registration token"
creds = credentials.Certificate('path/to/cert.json')
app = firebase_admin.initialize_app(creds)
msg = messaging.Message(data={'title': 'Test'}, token=token)
print(messaging.send(msg, app=app))

这将返回一个遵循 /project/<project name>/messages/<message ID> 格式的 URL。但那个网址对我不起作用。它只会将我重定向到 Firebase 控制台基本域和一个空白屏幕。此外,通知应列在 /notifications 下。他们不应该吗?

最佳答案

我有这个问题一个星期了。但它得到了解决。遵循这些:

  • 确保您的 APNs 证书 APNs 认证 key 已在 Firebase Console 中的云消息传递设置中上传
  • 确保您使用正确的 FCM 代币 发送 时firebase.messaging.Message 其中包括 apns ( messages.APNSConfig )。
  • 检查您的 AppDelegate.m 文件是在 Firebase Docs 之后设置的.就我而言,我忘记添加 [FIRMessaging messaging].APNSToken = deviceToken;在函数中 application:didRegisterForRemoteNotificationsWithDeviceToken: .请记住,即使您收到一条消息(它不包含通知),当您在服务器中发送消息时的响应并没有说明向 iOS 设备推送通知的任何内容。而且我也不知道如何检查通知是否已送达。

  • 我的python服务器代码:
    def push_notification():
        title = "Your title"
        message = "Your message"
        ntf_data = {"key": "value"}
        fcm_token = "your_fcm_token"
        topic = "your_topic"
    
        # apns
        alert = ApsAlert(title = title, body = message)
        aps = messaging.Aps(alert = alert, sound = "default")
        payload = messaging.APNSPayload(aps)
    
        # message
        msg = messaging.Message(
            notification = messaging.Notification(
                title = title,
                body = message
            ),
            data = ntf_data,
            token = fcm_token,
            topic = topic,
            apns = messaging.APNSConfig(payload = payload)
        )
    
        # send
        res = messaging.send(msg)
    
    和前端 react-native 通知监听器代码:
        onNotificationListener = firebase.notifications().onNotification((notification) => {
             console.log("received notification:", notification)
        }
    
    请随时询问我的回答是否有任何问题,或者您是否需要更多信息。快乐编码。

    关于Python Firebase Admin SDK 似乎成功,但我从未收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53771076/

    相关文章:

    python - 如何在 Python 3 中减去嵌套列表中的元素?

    python - 给定一个值列表和一个键列表,我如何从这两个列表中制作字典?

    node.js - 如何保护 Firebase 帐户等免受用户操作的影响?

    angular - 等待 firebase 加载快照

    Android 应用无法连接到 Firebase

    python - sqlalchemy : filter by relationship (like django orm)?

    python - 如何在 Django 模型中创建和保存文件

    ios - App在ios中的本地化错误

    objective-c - 访问 NSMutableArray 的困难

    iphone - 用户创建表单,如 iOS 联系人创建