Ich bin neu bei der Verwendung von FCM-Benachrichtigungen für Android-Anwendung unter https://firebase.google.com/docs/cloud-messaging/server. Ich habe es gelesen und festgestellt, dass in den Seitenanforderungen für FCM Server Folgendes steht:Wann benötigen Sie einen App-Server für Firebase Cloud Messaging?
Ein App-Server, den Sie in Ihrer Umgebung implementieren müssen. Diese App Server senden Daten an eine Client-Anwendung über die Verbindung FCM ausgewählten Server, geeignete XMPP oder HTTP-Protokoll
Aber ich bin sehr verwirrt über diese. Da ich mehr in den Artikel zu lesen, ich sehe, dass es eine API ist, die wie folgt aussieht:
POST http://fcm.googleapis.com/fcm/send
Wenn ich diese API mit so etwas wie OkHttpClient
aufrufen und meine Bitte bauen wie so (unter der Voraussetzung, dass ich Authentifizierungs-Header und ein POST Körper eingeschlossen)
private void sendRegistrationToServer(String token) {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder().add(“Body", "").build();
//Assuming I have authentication and body put in
Request request = new Request.Builder().url("http://fcm.googleapis.com/fcm/send”).post(body).build();
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
Würde ich in der Theorie, in der Lage mit einer Benachrichtigung zu senden, was Informationen ich möchte dieses Gerät? Ich kann die Nachricht durch die folgende Klasse erhalten:
public class NotificationService extends FirebaseMessagingService {
...
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO(developer): Handle FCM messages here.
Log.d(TAG, "From: " + remoteMessage.getFrom());
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
}
Ich bin sicher, dass mein Verständnis falsch ist irgendwo da die Dokumentation nicht sagen, dass wir einen Anwendungsserver benötigen, aber wenn jemand bitte darauf hinweisen könnte, wo ich bin Missverständnis, wie man FCM-Benachrichtigungen implementieren, das wäre großartig. Wenn jemand ein Beispiel dafür geben könnte, wo oder wann wir einen App-Server benötigen oder wie er tatsächlich implementiert werden sollte, würde das auch sehr geschätzt werden. Vielen Dank!
Ja, Sie können Benachrichtigungen vom Gerät mit Firebase API senden –
Welchen Fehler genau bekommen Sie? –
* firebaser hier * Das Senden von Downstream-Nachrichten über eine API erfordert die Verwendung des Serverschlüssels Ihres Projekts. Da dieser Schlüssel das Senden von Nachrichten im Namen Ihrer App ermöglicht, sollte er * niemals * in eine App eingebettet sein, die Sie an Ihre Benutzer senden. Daher die Notwendigkeit für einen App-Server. –