Отправить уведомление в FCM с помощью приложения для Android - PullRequest
0 голосов
/ 14 марта 2019

Я хочу создать клиентские и административные приложения для Android таким образом, чтобы приложение администратора отправляло уведомление в FCM (API), а пользователи клиентского приложения получали это уведомление.

Итак, я использовал Firebase Admin SDK для отправки уведомления из приложения администратора в FCM с помощью документации FCM , но в следующем коде (из документации)

есть что-то странное
// This registration token comes from the client FCM SDKs.
String registrationToken = "YOUR_REGISTRATION_TOKEN";

// See documentation on defining a message payload.
Message message = Message.builder()
.setNotification(new Notification(
    "$GOOG up 1.43% on the day",
    "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day."))
.setCondition(condition)
.build();


// Send a message to the device corresponding to the provided
    // registration token.
String response = FirebaseMessaging.getInstance().send(message);
// Response is a message ID string.
 System.out.println("Successfully sent message: " + response);

Поскольку send(RemoteMessage) принимает RemoteMessage, а не Message объект, как я мог изменить предыдущий код для отправки уведомления с использованием RemoteMessage object

1 Ответ

1 голос
/ 14 марта 2019

Похоже, вы пытаетесь смешать Firebase Admin SDK с Firebase Cloud Messaging SDK для Android. Это невозможно.

Любой процесс, использующий Admin SDK, получает полный неограниченный доступ к вашему проекту Firebase. Поэтому, если вы поместите его в приложение на стороне клиента, каждый, кто имеет это приложение, может отправлять сообщения FCM любому из ваших пользователей, а также: выводить список всех этих пользователей, удалять всю базу данных, перезаписывать облачные функции и т. Д. Для этого причина, по которой Firebase Admin SDK следует / можно использовать только в доверенной среде, такой как ваша машина разработки, сервер, которым вы управляете, или облачные функции.

Чтобы отправлять сообщения на устройство через Firebase Cloud Messaging, вам всегда нужно иметь доверенную среду, часто называемую сервером приложений в документации FCM.

Когда вы запускаете Admin SDK в этой доверенной среде, вы можете вызвать метод FirebaseMessaging.getInstance (). Send () , который принимает Message, возвращаемый build(), в качестве параметра.

Также см .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...