2016-06-25 9 views
2

Ich verwende Firebase mit einer Android-App (Auth, Datenbank und Benachrichtigung).Firebase-Benachrichtigung und Benutzer-ID

Ich versuche, eine Benachrichtigung von einem externen Server (in nodejs) zu senden, damit ein Benutzer eine Benachrichtigung an einen anderen Benutzer senden kann.

Also die Android-App eine Liste von UserId merken (die gleichen IDs von Firebase Auth) und dann diese Liste an den NodeJS-Server senden.

Mit dieser Liste kontaktiert der Server die URL 'https://fcm.googleapis.com/fcm/send', aber Firebase gibt mir eine InvalidRegistration zurück, weil ich eine Liste von userId sende und nicht die Liste der Registrierungstoken, die von der Firebase-Benachrichtigung erstellt wurden.

Sollte ich diese Tokens merken oder gibt es eine Möglichkeit, eine Benachrichtigung mit der Benutzer-ID zu senden?

(Und wenn ich mit einer Liste von Token versuchen, natürlich ist es funktioniert.)

var requestData = { 
    "registration_ids": userIds, //Problem is here 
    "data": { 
     "message": "A message" 
    } 
    }; 

    request({ 
     url: "https://fcm.googleapis.com/fcm/send", 
     method: "POST", 
     json: true, 
     headers: { 
      "Authorization": "key=firebaseKey", 
      "content-type": "application/json", 
     }, 
     json: requestData 
    }, 
    function(err, response, body) { 

    }); 
+1

Sie müssen das registrierte Token für jeden Benutzer speichern, um eine Benachrichtigung vom Server zu senden. –

+0

Ok thx! Dieser Satz im Dokument brachte mich dazu, anders zu denken. "Beachten Sie, dass Registrierungstoken geheim gehalten werden müssen." –

+1

Gehaltenes Geheimnis in Ihrer Datenbank, auf dem Server oder in einem geheimen permanenten geheimen Container. –

Antwort

0

Ja, Sie können. Dazu müssen Sie diese Benutzer-IDs anstelle des Geräte-ID-Tokens registrieren. Dann hat Firebase Ihre Benutzer-IDs erkannt.