2017-05-17 29 views
1

私は現在Firebase Cloud Functionsの助けを借りてFCMを使用してDevice GroupPushNotificationを送信しようとしていますが、通知が送信されると、それはコード200でなく、失敗を返します。Firebase FCMエラー:「InvalidRegistration」

SUCCESS response= { 
multicast_id: 8834986220110966000, 
success: 0, 
failure: 1, 
canonical_ids: 0, 
results: [ { error: 'InvalidRegistration' } ] 
} 

この通知を送信するために使用しているコードは次のとおりです...何が不足していますか?

const options = { 
    method: 'POST', 
    uri: 'https://fcm.googleapis.com/fcm/send', 
    headers: { 
     'Authorization': 'key=' + serverKey, 
    }, 
    body: { 
     to: groupId, 
     data: { 
     subject: message 
     }, 
     notification: { 
     title: title, 
     body: body, 
     badge: 1, 
     }, 
     content_available: true 
    }, 
    json: true 
}; 

return rqstProm(options) 
    .then((parsedBody) => { 
     console.log('SUCCESS response=', parsedBody); 
    }) 
    .catch((err) => { 
     console.log('FAILED err=', err); 
    }); 
JSONは title

bodysubjectmessageString

答えて

2

は、クラウド機能からデバイスグループにメッセージを送信する簡単な方法があります。 admin.messaging().sendToDeviceGroup()を使用してください。サンプルコードと説明はthis guideです。

groupIdで提供されているグループ通知キーに問題があるため、現在の方法が失敗していると思います。これは、デバイスグループを作成したときに返された文字列のキー値である必要があります。エラーコードはthis tableにリストされています。 200/InvalidRegistrationの場合:

Check the format of the registration token you pass to the server. Make sure it matches the registration token the client app receives from registering with Firebase Notifications. Do not truncate or add additional characters.

+0

これは実際には私は同じエラーをノードJSのバックエンドから完全に異なる方法を使用して取得しても答えていません。 – mic

0

登録トークンは特定の送信者グループに関連付けられています。クライアントアプリケーションがFCMに登録するときは、どの送信者がメッセージを送信できるかを指定する必要があります。クライアントアプリケーションにメッセージを送信するときは、これらの送信者IDのいずれかを使用する必要があります。

あなたは送信者IDでhttpヘッダー 'project_id'を追加する必要があります。

関連する問題