当前位置: 首页 > 知识库问答 >
问题:

Firebase云消息未发送到设备

许正平
2023-03-14

null

当我确实从Firebase云消息发送给自己一条测试消息时,它确实工作正常,并且成功地向每个设备发送了一个推送通知。

例如,以下是

 exports.observeLikes = functions.database.ref('/user-likes/{uid}/{postId}').onCreate((snapshot, event) => {
     var uid = event.params.uid;
     var postId = event.params.postId;

     return admin.database().ref('/users/' + uid).once('value', snapshot => {
       var userThatLikedPost = snapshot.val();

       return admin.database().ref('/posts/' + postId).once('value', snapshot => {
         var post = snapshot.val();

         if(uid === post.ownerUid) {
          return Promise.resolve();
        }


         return admin.database().ref('/users/' + post.ownerUid).once('value', snapshot => {
           var postOwner = snapshot.val();

           var payload = {
             notification: {
               body: userThatLikedPost.username + ' liked your post ',
              sound: 'default'
             }
           };

           admin.messaging().sendToDevice(postOwner.fcmToken, payload)
           .then((response) => {
             // Response is a message ID string.
             console.log('Successfully sent message:', response);
             return response;
           })
           .catch((error) => {
             console.log('Error sending message:', error);
             throw new Error('Error sending message:', error);
           });
             })
         })
       })
     })

null

共有1个答案

孔扬
2023-03-14

所以我找到了问题所在。我从我的设备上删除了这个应用程序,并创建了一个新的帐户(它为该帐户创建了一个新的FCM令牌),推送通知确实起作用。我做了另一个检查,并手动将另一个设备上的FCM令牌更改为它注册的新令牌,并且推送通知成功。看来我现在需要找到一种方法来更新每个当前测试用户的FCM令牌,因为他们当前的设备没有收到通知。

 类似资料:
  • 在搜索文档之后,我找不到任何关于如何在没有使用外部服务器的情况下使用FCM向设备发送消息的信息。 例如,如果我正在创建一个聊天应用程序,我将需要向用户发送关于未读消息的推送通知,因为他们不会一直在线,而且我不可能在后台有一个始终连接到实时数据库的持久服务,因为这会占用太多资源。 那么当某个用户“B”向他/她发送聊天消息时,我将如何向用户“a”发送推送通知呢?我需要一个外部服务器来完成这个任务吗?还

  • 按照Firebase开发文档中的说明,我已经实现了一个扩展Firebase MessagingService的服务,并覆盖了onMessageRec的回调。我已经将一条Log消息放在onMessageRec的方法的第一行中。 应用程序在后台运行我没有在logcat中看到日志,但我看到系统中发布了一个通知。 应用程序在前台我既没有看到日志也没有通知在系统托盘 知道这是怎么回事吗? 清单 服务等级

  • 我对FireBase云消息有一个问题,我从设备中获取令牌,并通过Google FireBase通知控制台发送通知测试。但是,通知从来没有被记录,也没有被推送到android虚拟设备。FCM的文档几乎与下面的代码完全相同,其他代码很少,您还需要做什么来获得使用FireBase的推送通知。我已经完成了所有的设置信息(build.gradle添加、安装google play服务等)如文档中所指定的,但仍

  • 有人知道一种从firebase控制台发送click_action的方法吗? 我只想发送click_action按钮来使用通知,即使应用程序关闭或在后台。

  • 我正在尝试为Web设置Firebase云消息传递。我成功地对其进行了正确初始化并获得了令牌: manifest.json与gcm_sender_id 我可以看到我在控制台中得到令牌,所以我试图验证它,并通过邮递员发送我的第一个通知-这里是留档。 发布网址:https://fcm.googleapis.com/v1/projects/PROJECTID/messages:发送授权:无授权 标题 Bo

  • 我刚开始使用Firebase云消息。我建了一个IOS应用来接收推送通知。应用程序运行良好。我从Firebase控制台发送消息,它们会正确显示。 我的问题是:我可以向所有设备发送一条消息吗(就像我可以在控制台中做的那样)?我是的,怎么会这样? 提前道谢!