我正在使用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,