1

私はFirebaseのクラウド機能を使用してユーザに通知を送信しています。私は通知を得ることができますが、問題は誰もが通知を受けている、私は特定のユーザーに通知を送信しようとしているということです。 FirebaseのデータベースにユーザのデバイスIDを保存してから、その特定の人に通知を送信します。 、ユーザーのデータを保存するにはFirebaseのクラウド機能を使用して特定のユーザに通知を送信

実際に正常に動作している:ここに私のコードです

トピックにサブスクライブする最初のアクティビティで
DatabaseReference root = FirebaseDatabase.getInstance().getReference(); 
      DatabaseReference groupsRef = root.child("users").child(Settings.Secure 
      .getString(ctx.getContentResolver(), Settings.Secure.ANDROID_ID)); 
      groupsRef.child("isLogin").setValue(2); 

FirebaseMessaging.getInstance().subscribeToTopic("android"); 

そして最後にJavaScriptコード(私が知っている何か非常に少ない):

var functions = require('firebase-functions'); 
var admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

exports.sendNotification = functions.database.ref('/users') 
    .onWrite(event => { 

    var eventSnapshot = event.data; 
    var str = "This is notification" 
    console.log(str); 

    var topic = "android"; 
    var payload = { 
     data: { 
      isLogin: eventSnapshot.child("975af90b767584c5").child("isLogin").val() 
     } 
    }; 

    return admin.messaging().sendToTopic(topic, payload) 
     .then(function (response) { 
      // See the MessagingTopicResponse reference documentation for the 
      // contents of response. 
      console.log("Successfully sent message:", response); 
     }) 
     .catch(function (error) { 
      console.log("Error sending message:", error); 
     }); 
    }); 

ここでは、「975af90b767584c5」の代わりにハードコーディングされたw、私はjavascriptで行う方法がわからないデバイスIDを送信したい。それ以外の方法があれば。

ご協力いただきありがとうございます。アプリで初

+0

あなたがする必要がありますデバイスに通知を送信TOKEN IDなし –

+0

@DivyeshPatelどのようにjavascriptで行うには??申し訳ありませんが、私はたくさんのjsを知っていません –

+0

ユーザーがアプリケーションに登録すると、デバイストークンをデータベースに保存してからdbからそのトークン(userid =?)を取得し、そのトークンに通知を送信する必要があります。 –

答えて

3

、今

String Token = FirebaseInstanceId.getInstance().getToken(); 

によってユーザーFCMトークンを取得し、サーバーにこのトークンを送信し、データベース内の他のユーザの詳細を保存します。

通知を特定の用途に送信する場合は、ユーザーIDなどでデータベースからそのユーザーのFCMトークンをフェッチします。複数のユーザーに通知を送信する場合は、データベースから複数のユーザーFCMトークンをフェッチし、配列リスト。

主要部分については、KEY、通知内容 で最も重要なトークンまたはトークン配列を使用してfcmエンドポイントを呼び出します。あなたのケースでは

、sendToTopicを使用していない、使用に送る:あなたはJavaスクリプトの構文のためのgoogleすることができますが、これはメインであるトークン/アレイ

logic.For詳細: https://firebase.google.com/docs/cloud-messaging/admin/send-messages

関連する問題