1

Ich verwende Cloud-Funktionen für Firebase, um Benachrichtigungen an den Benutzer zu senden. Ich kann die Benachrichtigung erhalten, aber das Problem ist, dass alle die Benachrichtigung erhalten. Ich versuche, die Benachrichtigung an einen bestimmten Benutzer zu senden. Ich speichere die Geräte-ID des Benutzers in der Firebase-Datenbank und sende dann dieser bestimmten Person die Benachrichtigung. Hier ist mein Code:Senden Sie Benachrichtigungen mit Cloud-Funktionen für Firebase an bestimmte Benutzer

Um Benutzerdaten zu speichern, was in Ordnung tatsächlich funktioniert:

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); 

In erster Aktivität zum Thema abonnieren:

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

Und schließlich Javascript-Code (etwas, was ich weiß, sehr wenig über):

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); 
     }); 
    }); 

hier statt „975af90b767584c5“, das Recht nicht fest einprogrammiert wird w, Ich möchte Geräte-ID senden, die ich nicht in Javascript zu tun weiß. Oder wenn es anders geht.

Jede Hilfe wird geschätzt, danke.

+0

Sie müssen Benachrichtigung an Gerät senden TOKEN nicht ID –

+0

@DivyeshPatel Wie geht das in Javascript? Sorry, aber ich weiß nicht viel js –

+0

wenn Benutzer in App registrieren, müssen Sie Geräte-Token in der Datenbank speichern, dann holen Sie sich dieses Token (wo userid =?) Von db und Benachrichtigung an dieses Token senden. –

Antwort

3

Erste in App, Benutzer-FCM-Token von

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

Jetzt bekommen, dies Token an den Server senden und mit anderen Benutzerdaten in der Datenbank speichern.

Dann, wenn Sie Benachrichtigung auf spezifische Verwendung schicken, holen, die FCM-Token des Benutzers aus der Datenbank über Benutzer-ID oder etwas else.If Sie eine Benachrichtigung an mehrere Benutzer gesendet werden soll dann mehrere Benutzer FCM-Token aus der Datenbank holen und sie in Anordnungsliste.

Jetzt für den Hauptteil, fcm Endpunkt mit Ihrem KEY, Benachrichtigungsinhalt und am wichtigsten: Token oder Token-Array.

In Ihrem Fall verwenden sendToTopic nicht, verwenden Sie senden an: kann Token/Array

Sie Google für Java-Script-Syntax, aber dies ist Haupt logic.For weitere Informationen: https://firebase.google.com/docs/cloud-messaging/admin/send-messages

Verwandte Themen