Сбой при отправке уведомлений с использованием облачных сообщений Firebase, Python API - PullRequest
1 голос
/ 27 февраля 2020

Чтение документации Firebase. Я написал сценарий Python для отправки некоторых уведомлений в мое Android приложение.

import firebase_admin 
from firebase_admin import credentials, messaging

#USING ENV VARIABLE: GOOGLE_APPLICATION_CREDENTIALS 
app = firebase_admin.initialize_app()

topic = 'uat-test' 
notification = messaging.Notification(title="Title", body="Body")

# See documentation on defining a message payload. 
message = messaging.Message(
    notification=notification,
    topic=topic, )

# Send a message to the devices subscribed to the provided topic. 
messaging.send(message)

# Response is a message ID string. 
print('Successfully sent message:', message)

Информация об аутентификации сохраняется в переменной env GOOGLE_APPLICATION_CREDENTIALS, которая указывает на приватное файл ключа json, который я скачал с firebase.google.com.

Даже если я получаю в качестве вывода идентификатор сообщения и сообщение об ошибке не отображается, я не вижу никаких уведомлений на своем телефоне. Я успешно получаю уведомление, только если я вручную отправляю его через консоль Firebase через веб-приложение (firebase.google.com), но мне нужно автоматизировать процесс. Уведомление, приходящее при отправке вручную, говорит мне, что мое приложение успешно подписалось на topi c, но я не могу понять, почему API Python не работает. Я не думаю, что это проблема среды, поскольку я тоже попробовал Node API и получил те же результаты. У кого-нибудь есть подсказка? Я чувствую, что мне чего-то не хватает. Я запускаю скрипт со своего компьютера, я не знаю, может ли он что-то подсчитать.

1 Ответ

1 голос
/ 28 февраля 2020

Я нашел способ показывать уведомления. Оказывается, поскольку я разрабатываю с использованием Flutter Framework, приложение Android может обрабатывать уведомления только через устаревшие протоколы сервера приложений : устаревший протокол документации Firebase

Используя этот подход, уведомления, наконец, отображаются. Я не знаю, будет ли такая же проблема с iOS.

...