3

먼저 FCM 토큰을 생성하고 Firestore에 저장했습니다. 그 후 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 }

response.results 배열의 배열은 token 배열의 토큰과 동일한 순서로 토큰에 전송됩니다.

모든 가능한 오류는 Firebase Documentation에서 확인할 수 있습니다.

response.failureCount > 0 인 경우 메시지를 보내지 않았으므로 response.results에 해당 오류가 표시됩니다. 변수에 대해 알아보십시오. 빠른 메시지 배달을 보장하려면 options.priority'high'이어야합니다.

아마도 도움이 될 것입니다.