android - 当日志显示没有错误时,为什么我的推送通知没有出现在设备上?

标签 android node.js push-notification google-cloud-firestore android-notifications

我已经部署了以下 Firebase 函数,用于在我的 Cloud Firestore 聊天应用程序中实现推送通知。看完this tutorial后我第一次这样做.

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendNotificationToTopic = functions.firestore.document('chats/{roomid}/messages/{uid}').onWrite(async(event)=>{
    let content = event.after.get('message')
    var message ={
        notification: {
            title: 'You have an unread message',
            body: content,
        },
        topic:'namelesscoder',
    };
});

在测试该功能时,log显示该功能正常工作,没有任何错误,但我的设备实际上没有收到通知。这是因为我声明数据库结构的方式吗?上面代码中的路径就是我的聊天消息的存储位置。 enter image description here enter image description here

最佳答案

此函数将向主题(订阅主题的用户组)而不是特定用户发送推送通知。如果您想向一组用户发送通知,您可以使用此功能,并且您的用户必须订阅主题。在此函数中,主题是“namelesscoder”,因此您的用户需要订阅该主题。

如果您使用的是 Android,请编写以下代码来订阅主题“namelesscoder”

FirebaseMessaging.getInstance().subscribeToTopic("namelesscoder")
   .addOnCompleteListener(new OnCompleteListener<Void>() {
          @Override
          public void onComplete(@NonNull Task<Void> task) {
             String msg = "subscribed to topic nameless coder.";
             if (!task.isSuccessful()) {
                 msg = "Failed to subscribe to topic";
             }
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
      }
});

如果您想向特定用户发送通知,则必须将其发送到 FCM token 。

关于android - 当日志显示没有错误时,为什么我的推送通知没有出现在设备上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60134790/

相关文章:

android - Android 平台是否有任何专注于安全性的编码指南?

android - 在用户不知情的情况下用基于 cordova/phonegap 的应用程序交换现有的 native 应用程序

javascript - 错误 "Unhandled ' 错误'事件“运行 yo 生成器后

objective-c - iOS 应用程序后台位置(推送通知)

android - 当应用程序未运行(iphone/android)时,在远程触发器上创建(重复高音)警报,就像查找我的 iPhone 一样

android - 如何在 Android Material Calendar 中禁用日期

Android:确定 Activity 何时完成动画以查看?

node.js - 如果 tsConfig 目标为 ESNext、ES2021 或 ES2020,ts-jest 可选链接不起作用

javascript - 为什么 Javascript 比较不​​适用于对象?

iOS PushKit 响铃电话