如何通过使用PHP(Web)检索设备注册ID以避免MismatchSenderId?

时间:2018-10-10 23:08:47

标签: php firebase firebase-cloud-messaging phonegap

这是我在phonegap上的应用程序上的代码,用于获取注册ID。总是成功获取注册ID。

const push = PushNotification.init({

    android: {
    },
    browser: {
        pushServiceURL: 'http://push.api.phonegap.com/v1/push'
    },
    ios: {
        alert: "true",
        badge: "true",
        sound: "true"
    },
    windows: {}

});

push.on('registration', function ( data ) {

    recordRegistrationID( data.registrationId ); //Pseudo

});

push.on('notification', function ( data ) {

    // data.message,
    // data.title,
    // data.count,
    // data.sound,
    // data.image,
    // data.additionalData

});

push.on('error', (e) => {

    // e.message

});

然后,我尝试通过将其卷曲到Firebase Cloud Messaging API上,从我的PHP服务器(example.com)将带有存储的注册ID的推送通知发送到该设备,它始终返回MismatchSenderId。

{"multicast_id":6660509895358893455,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}

我已经尝试编译.APK并在我的移动设备上运行它。我总是成功地获得令牌,但是消息永远无法发送到PhoneGap应用检索到的注册ID。

进行更多研究,似乎是因为PhoneGap实际上检索了注册ID,但它作为发件人与PhoneGap本身联系在一起,所以其他发件人将无法工作。

我是否可以假设这个?在这种情况下,如何使用PHP代替PhoneGap获取Firebase Cloud Messaging的注册ID?

谢谢。

1 个答案:

答案 0 :(得分:0)

  

进行更多研究,似乎是因为PhoneGap实际上检索了注册ID,但它作为发件人与PhoneGap本身联系在一起,所以其他发件人将无法工作。

这似乎是一种奇怪的行为。生成的令牌与应用程序实例 Firebase项目绑定在一起。您能否提供提及的链接?关联的令牌根本无法更改为其他发送者。

话虽如此,目前尚无法从后端获取注册令牌。如上所述,令牌与应用程序实例相关,因此只能在客户端应用程序端生成。