小编Fra*_*nck的帖子

如何解码/查看 FCM 推送令牌?

我对 FCM 令牌有问题,有时它有效,但通常不起作用。它有时会告诉我消息传递/服务器 ID 不匹配(此处没有 eaxt 措辞)。

有时,它不适用于admin.messaging().send(),但适用于admin.messaging().sendToDevice()函数。错误消息各不相同。

有时我的设备会给我一个非工作令牌,后来当我刷新令牌时,我得到一个工作令牌。

很奇怪,可能是由于我的测试环境(本地为 http,在 firebase 托管时为 https,在开发、uat、prod 环境中玩......)

为了更好地了解它的来源,我正在寻找一种方法来解码推送令牌的内容,尤其是获取 serverId 和其他相关信息。

在 jwt.io 上尝试使用 ES256 加密,但它告诉我它的格式不正确。

来自测试环境的示例令牌:

daRgOcOsShw:APA91bEqYpLaXhfQd1FGeE_wk6sIzbvI6HLPGQaoo3PhxXU5kFbs2k0dQTTx772e_mEdsUsQDX59MY2OHVnar0KU0Zm8SlIw1GcjHm8SlIw1GcjHmlIw1gcjhgcgcgcjbgcgcglq1gcgcggcglq1gcglq18

非常感谢你的帮助

firebase-cloud-messaging

7
推荐指数
0
解决办法
983
查看次数

Firebase 安全规则,确保只有一个“数组删除”,并且只针对 userId

我有通知记录,其中有文本和用户列表(最多 10 个)。

{text: "Beware of the dog", users: [ uid1, uid2, uid3, ... ]}
Run Code Online (Sandbox Code Playgroud)

当用户阅读/确认通知时,我想将他从可以看到通知的用户列表中删除(然后他将不再收到任何通知)。

为此,当用户按下“隐藏通知按钮”时,他会发送一个请求来更新通知记录:

users: FieldValue.arrayRemove(uid)
Run Code Online (Sandbox Code Playgroud)

我想使用用户的安全规则:

  • 不更改通知记录的其他部分。
  • 在 arrayRemove 部分发送它的 uid 和仅它的 uid。

试过

allow update: if 
    request.auth.uid != null 
    && request.auth.uid in resource.data.users 
    && request.resource.size() == 1 
    && request.resource.data.users != null;
Run Code Online (Sandbox Code Playgroud)
  • request.resource.size == 1 不起作用。不知道为什么,因为我的请求中只有一个字段。
  • 我无法确保 arrayRemove 严格限于其 uid。

任何提示、帮助、想法都值得赞赏。

firebase-security google-cloud-firestore

6
推荐指数
1
解决办法
349
查看次数