我正在尝试通过Firebase向我的Ionic 3 App发送推送通知。经过大量更新和降级后,它才能工作。
我能够通过Firebase后端向我的所有用户发送推送通知。但是我无法将消息发送到单个设备。
一个问题是,firebase.getToken()方法不返回任何内容。它只是运行中...而运行中..没有任何结果。 因此,我尝试将“ abc:1234”之类的令牌推送到我的Firebase后端。我看到了这个令牌,带有一个userId'testUserId'。
我不知道令牌的外观。我试图将device.uuid设置为令牌。但是我认为userId应该是唯一的,而不是令牌。有可能吗?
下一个问题可能是api调用。我正在尝试通过REST Api将消息发送到单个设备。
这是我的电话:
POST @ https://fcm.googleapis.com/fcm/send
Headers:
Content-Type: application/json
Authorization: key=AAAA.....
Body: to is testUserId or "abc:1234" - nothing works
{
"to" : "testUserId",
"notification" : {
"body" : "Body of Your Notification",
"title": "Title of Your Notification"
},
"data" : {
"body" : "Body of Your Notification in Data",
"title": "Title of Your Notification in Title",
"key_1" : "Value for key_1",
"key_2" : "Value for key_2"
}
}
结果始终相同:
{
"multicast_id": 6137262153965761905,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "InvalidRegistration"
}
]
}
我希望有人能帮助我。要在Ionic 3上运行FCM Cloud Messaging非常困难。 非常感谢。
更新:我找到了一种解决方案:)
我用ionic-native/firebase@5.6.0构建它
但我认为此版本已损坏。现在,我使用以下命令将插件降级到4.20.0版本:
npm i -s @ionic-native/firebase@4.20.0
您可以不使用/ ngx导入Firebase。 因此,这应该是您的导入对象:
import {Firebase} from '@ionic-native/firebase';