サーチ…


前書き

これは、サーバーでFirebase admin SDKを実行している場合、 HTTP Post要求を使用する2つの方法を使用して実行できます。ここでは、それらの両方について説明します。

Firebase Cloud Messaging HTTPプロトコル

下のリンクへのあなたのサーバーリクエストからいくつかのリクエストパラメータで通知を送信する

https://fcm.googleapis.com/fcm/send

ヘッダーの追加を要求する際は、次のようにします

Authorization    key=<Your_key_from_the_console>
Content-Type     application/json

リクエストの本文はさまざまです

{
  "to" : <tokens or the topic>,
  "notification" : {
    "title":"This is a test title",
    "body":"This is the body"
  },
  "data": {
      //whatever key value payer you need to send  
  }
}

toパラメータは、トークンの配列を取る

["token1","token2",..........]

のような単一のトークン

"token"

/ topic / likeで始まるトピック名

"/topic_name/"

||を使用する複数のトピック使用条件についてと&&演算子は好きです

"/topic_name/ && /topic2/"

Admin SDK(ノードjs)の使用

firebase sdkとadmin SDKを最初に起動します。

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp({
  credential: admin.credential.cert({
        //your admin credential certificate generated from the console. Follow this [link][1].
    }),
  databaseURL: "https:///<PROJECT_NAME>.firebaseio.com"
});

最初の例のように、ペイロードJSON文字列を作成します。

var payload = {
              notification: {
                title: "Title of the notification,
                body: "Body of the notification",
              },
              data:{
                //required key value pair
              }
            };

次に、さまざまなsendメソッドを呼び出して通知を送信します。

トピックの場合

admin.messaging().sendToTopic("/topic/", payload)
              .then(function(response) {
                console.log("Successfully sent message:", response);
              })
              .catch(function(error) {
                console.log("Error sending message:", error);
              });
            });

デバイスの場合

admin.messaging().sendToDevice(token, payload).then(response=>{
                       response.results.forEach((result, index) => {
                        const error = result.error;
                        if (error) {
                          console.error('Failure sending notification to', tokens, error);
                        } else{
                          console.log('Sucessfully sent to '+tokens);
                        }
                      });


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow