Python Firebase Admin SDK выглядит успешно, но я никогда не получаю уведомление - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь использовать Python Firebase Admin SDK для отправки push-уведомлений для моего мобильного приложения.Я протестировал его с помощью компоновщика уведомлений в консоли Firebase, так что я знаю, что мое устройство может получать push-уведомления, но когда я пытаюсь использовать 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))

Этовозвращает URL, который соответствует формату /project/<project name>/messages/<message ID>, но этот URL не работает для меня.Он просто перенаправит меня на базовый домен консоли Firebase и на пустой экран.Кроме того, уведомления должны быть перечислены под /notifications не так ли?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

У меня была эта проблема в течение недели.Но это было решено.Выполните следующие действия:

  1. Убедитесь, что ваши Сертификаты APN или Ключ аутентификации APN были загружены в настройках Cloud Messaging в Консоль Firebase
  2. Убедитесь, что вы используете правильный FCM токен при отправке firebase.messaging.Message , который включает apns ( messaging.APNSConfig ).
  3. Проверьте, что ваш AppDelegate.m файл был настроен в соответствии с Документами Firebase .В моем случае я забыл добавить [FIRMessaging messaging].APNSToken = deviceToken; в функцию application:didRegisterForRemoteNotificationsWithDeviceToken:.Помните, что в ответе, когда вы отправляете сообщение на своем сервере, ничего не говорится о push-уведомлениях на ваших устройствах 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)

И код прослушивателя уведомлений для внешнего интерфейса:

    onNotificationListener = firebase.notifications().onNotification((notification) => {
         console.log("received notification:", notification)
    }

Не стесняйтесь спрашивать, есть ли проблема в моем ответе или вам нужна дополнительная информация.Удачного кодирования.

0 голосов
/ 14 декабря 2018

Возвращаемое значение является строкой идентификатора сообщения, и в настоящее время оно ни на что не указывает (то есть не является действительным URL).Это просто уникальный идентификатор, который FCM присвоил вашему уведомлению, и он указывает, что уведомление было успешно передано FCM для доставки.Кроме того, я считаю, что уведомления, отправленные из SDK, не отображаются в консоли Firebase.Вам нужен реальный клиент (Android, IOS или Интернет) для сквозного тестирования этого потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...