我的安卓应用无法接收来自 python 的 fcm 消息



我正在使用Firebase Cloud Messaging构建Android应用程序。 我的应用可以从 FCM 控制台接收消息。 但是,它无法从python接收,尽管响应良好。 你能给我一些建议吗?

class fbMessaging():
def __init__(self):
cred = credentials.Certificate('./env/firebase.json')
firebase_admin.initialize_app(cred)
def send_to_device(self, text, token):
message = messaging.Message(
data = {
'title': 'test',
'body': text,
},
token = token,
)
response = messaging.send(message)
return response
def main():
fm = fbMessaging()
res = fm.send_to_device('test', 'MY CORRECT TOKEN')
print(res)

在消息接收在这里

override fun onMessageReceived(message: RemoteMessage?) {
val from = message!!.from
val data = message.data
Log.d(TAG, "from:" + from!!)
Log.d(TAG, "data:$data")
}

打印的回复如下。

项目/匹配-XXXXX/消息/0:1554291593xxxxxx

使用 Firebase 云消息传递,您可以发送通知有效负载和/或数据有效负载

通知有效负载包含 标题 - 通知标题 正文 - 通知正文

键名称固定且无法更改。

另一方面,数据负载只是一个键值对,您可以发送任何以字符串类型作为其值的键名。

FCM 行为:

根据应用是位于前台还是后台,以及是否存在通知有效负载和/或数据有效负载,FCM 消息将由应用中的不同组件接收。

根据文件处理FCM通知,

  • 应用在后台运行时发送的通知消息。在这种情况下,通知将传递到设备的系统托盘。默认情况下,用户点击通知会打开应用启动器。

  • 在后台接收时同时包含通知和数据有效负载的消息。在这种情况下,通知将传递到设备的系统托盘,并且数据有效负载将在启动器活动意图的额外内容中传递。

此行为已在接收消息部分中进行了明确说明。

如您所见,如果仅在独立发送通知有效负载的情况下,则不必生成通知 UI。否则,您必须在调用onMessageReceived时创建通知 UI。

使用 Python:

通知有效负载示例:

message = messaging.Message(
notification=messaging.Notification(
title='This is a Notification Title',
body='This is a Notification Body',
),
token=registration_token,
)

数据负载示例:

message = messaging.Message(
data={
'score': '850',
'time': '2:45',
},
token=registration_token,

双:

message = messaging.Message(
notification=messaging.Notification(
title='This is a Notification Title',
body='This is a Notification Body',
),
data={
'score': '850',
'time': '2:45',
},
token=registration_token,

相关内容

  • 没有找到相关文章

最新更新