У меня есть приложение для Android, и я пытаюсь отправить уведомление на определенное устройство, на котором оно установлено, используя API-интерфейс Firebase Messaging из функции Firebase.Но уведомление никогда не появляется.Однако отправка вручную из консоли Firebase действительно приводит к успешному отображению уведомления на том же устройстве.Вот соответствующий код функции Firebase:
var message = {
notification: {
title: notifTitle,
body: notifBody,
sound: 'default',
android_channel_id: 'update_channel',
channel_id: 'update_channel'
// tag:
}
};
var options = {}
console.log(message);
console.log('registrationToken: ' + registrationToken);
// Send a message to the device corresponding to the provided
// registration token.
admin.messaging().sendToDevice([registrationToken], message, options)
.then((response) => {
console.log(response);
...
Который регистрирует следующее при вызове, похоже, успешно отправив уведомление:
{ results: [ { messageId: '0:1544572985549904%5be491645be49164' } ],
canonicalRegistrationTokenCount: 0,
failureCount: 0,
successCount: 1,
multicastId: 5825519571250606000 }
В моем приложении для Android я создалupdate_channel в основном действии onCreate () (потому что из того, что я собрал, для Android Oreo API 26+ требуется определенный канал ...):
private void createNotificationChannel() {
// Create the NotificationChannel, but only on API 26+ because
// the NotificationChannel class is new and not in the support library
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String id = getString(R.string.update_notification_channel);
CharSequence name = getString(R.string.app_name);
String description = getString(R.string.app_name);
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(id, name, importance);
channel.setImportance(NotificationManager.IMPORTANCE_HIGH);
//channel.setDescription(description);
// Register the channel with the system; you can't change the importance
// or other notification behaviors after this
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
}
И также установка его в качестве канала по умолчанию вМанифест:
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="update_notification_channel"/>
Я не знаю, связана ли проблема с каналом, или я пропускаю шаг где-то, или что.