2017-04-18 3 views
0

Ich versuche Push-Benachrichtigungen von meinem NodeJS Server zu meinem iOS Gerät zu senden, aber ich kann es nicht zum Funktionieren bringen. Ich mache die Methode. Ich habe das Codebeispiel aus der Dokumentation Firebase Admin (NodeJS) ausprobiert, aber es scheint nicht zu funktionieren.Senden von Push-Benachrichtigungen von meiner NodeJS-App funktioniert nicht

Hier ist mein NodeJS Code:

const admin = require('firebase-admin'); // Firebase-admin module to send push notifications via firebase 
const serviceAccount = require('./myprivatekey.json'); //privateKey.json file 

// setup firebase admin 
admin.initializeApp({ 
    credential: admin.credential.cert(serviceAccount), 
    databaseURL: FIREBASE_URL 
}); 

sendMessage('someTopic', 'test message'); 

function sendMessage(topicName, message) { 
    // The topic name can be optionally prefixed with "/topics/". 
    var topic = `/topics/${topicName}`; 
    console.log(topic); 

    // See the "Defining the message payload" section below for details 
    var payload = { 
     notification: { 
      title: 'test title', 
      body: message 
     } 
    }; 

    // Send a message to devices subscribed to the provided topic. 
    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 ist mein Swift Code zu diesem Thema zu erhalten:

override func viewDidLoad() { 
     super.viewDidLoad() 

     FIRMessaging.messaging().subscribe(toTopic: "/topics/someTopic") 
    } 

Wenn ich meine NodeJS app laufen, erhalte ich die Successfully sent message: log so bin ich nicht sicher, warum ich die Push-Benachrichtigung auf meinem iOS-Gerät nicht erhalte.

Und ja, ich habe bereits die notwendigen APN Zertifikate für die Entwicklung und Produktion eingerichtet. Ich bin in der Lage, Push-Benachrichtigungen von der Firebase Cloud Messaging Webkonsole zu senden und die Benachrichtigungen auf meinem iOS Gerät erfolgreich zu empfangen. Ich kann einfach nicht scheinen, meine NodeJSFirebase Admin App zu funktionieren. Schätzen Sie jede Hilfe dazu.

AKTUALISIERUNG: Ich möchte auch darauf hinweisen, dass selbst mit dem Swift-Code zum Abonnieren eines Firebase-Themas das angegebene Thema nicht auf der Firebase-Webkonsole angezeigt wird. Ich verstehe, dass es Stunden dauert, auf der Firebase-Webkonsole zu erscheinen, aber es ist schon eine Woche her, seit ich Code lief, um mein iOS-Gerät zu einem Firebase-Thema zu abonnieren.

Ich habe auch versucht, meinen NodeJS-Code zu ändern, um an ein einzelnes Gerät zu senden, anstatt an Thema zu senden, und das funktioniert. Es ist nur das Senden an ein Thema, das nicht funktioniert. Ich habe das mögliche Problem auf send to topic eingegrenzt. Könnte es sein, dass der Swift-Code, den ich habe, mein iOS-Gerät nicht erfolgreich zum angegebenen Thema abonniert? Aber das ist der genaue Ausschnitt aus der Firebase-Dokumentation.

+0

trifft hilft Haben Sie eine Registrierung erforderlich Geräte zur Fernbenachrichtigungen und Empfangen von Nachrichten Thema der gesamten Code implementieren? https://firebase.google.com/docs/notifications/ios/consoletopics –

+0

@PatNeedham Ja. Ich kann dies überprüfen, da ich Push-Benachrichtigungen von der Firebase-Webkonsole senden und die Benachrichtigungen auf meinem iOS-Gerät erfolgreich empfangen kann. Ich kann die Benachrichtigungen meiner Knoten-App einfach nicht empfangen – aresz

Antwort

1

Ich habe es herausgefunden. Es stellt sich heraus, dass der Aufruf des Subskriptionscodes in viewDidLoad() eine schlechte Idee ist, da die App zu diesem Zeitpunkt noch nicht vollständig mit dem FCM und dem APN verbunden war. Also habe ich diesen Code in meinem didRegisterForRemoteNotificationsWithDeviceToken im AppDelegate verschoben.

Jetzt funktioniert es.

habe ich die Idee von dieser Frage Stackoverflow thread: Cannot receive push notification on iOS from Firebase 3.2.0 topics

Hope this jeden, der dieses Problem

Verwandte Themen