3

最初にFCMトークンを生成し、ファイアストアに格納しました。その後、FCMトークンに基づいて通知を送信するクラウド機能を作成しました。ステータスがOKの通知を正常に送信したことを示すクラウド機能を導入しました。しかし、モバイルデバイスには表示されません。私のIndex.jsはクラウド機能を使用してFCMトークンを使用して複数のデバイスにプッシュ通知を送信する方法

'use strict'; 
const functions = require('firebase-functions'); 
const Firestore = require('@google-cloud/firestore'); 
const admin = require('firebase-admin'); 
const firestore = new Firestore(); 
const db = admin.firestore(); 
admin.initializeApp(functions.config().firebase); 
exports.hellouser = functions.firestore 
    .document('users/{token}') 
    .onWrite(event =>{ 
    var document = event.data.data(); 
    console.log("tokens",document); 
    var token = ['cdNN0AbYKU0:APA91bEyL0zo3zwHZD8H43Vp7bxAfYgehlVI8LrKktPO2eGuByVDdioysIGxHe5wocwq8ynxRToJPpOve_M59YY_MIRbWLnF9AIgoTwJORXZbw6VBw7']// this is my FCM token. 
    if(
    const payload = { 
     notification: { 
      title: "Message", 
      body: "hi hello", 
      sound: "default" 
     } 
    }; 
    return admin.messaging().sendToDevice(token, payload).then((response)=> { 

    console.info("Successfully sent notification") 
    }).catch(function(error) { 
     console.warn("Error sending notification " , error) 
    }); 
}); 

FCMtokenに基づいて通知を送信する方法です。

+0

誰でも手伝ってください。 – vijju

答えて

2

正確なコードの場合は、if(の構文を確認してください。これはあなたを助けるかもしれません。
次に、responseオブジェクトを通過するためのコードを記述します。 Firebaseはあなたのトークンとペイロードを受け取り、処理して200 OK応答を返すことがありますが、応答ではエラーが発生します。
レスポンスは次のような一般的な構造を持っています:

{ results: [ { //stuff related to one token },{ //stuff related to one token } ], canonicalRegistrationTokenCount: 0, failureCount: 1, successCount: 0, multicastId: SOME_LONG_NUMBER }

配列は、token配列のトークンと同じ順序でトークンに送られた各メッセージのステータスを持っています。

考えられるすべてのエラーをFirebase Documentationに見ることができます。

response.failureCount > 0の場合、メッセージは送信されず、response.resultsに対応するエラーが発生するはずです。
変数についてはoptionsもご覧ください。メッセージの高速配信を保証するには、options.priority'high'である必要があります。

おそらくこれが役立ちます。

関連する問題