gpt4 book ai didi

react-native - 如何识别一个 Expo Push Notification Token 所属的 Expo 项目?

转载 作者:行者123 更新时间:2023-12-04 13:00:04 25 4
gpt4 key购买 nike

前提

不管是好是坏,我在我的生产和开发环境中使用了两个 Expo 帐户。

Production  Expo Account: prod-proj
Development Expo Account: dev-proj

我使用 Expo 的推送通知服务向我的用户发送推送通知。我将每个用户的 Expo Push Notification Token 存储在他们的用户文档中。 IE。:
User
id: 1
name: Jimothy
token: ExponentPushToken[di3ja!-lk2^(24af]

通过一系列不幸的事件,我的数据库中的大多数用户都使用 prod-proj 创建了一个推送通知。 Expo 项目,但少数用户使用 dev-proj 创建了推送通知.

问题

当我尝试分块并向所有用户发送推送通知时,我从 Expo 收到错误消息:

Error: All push notification messages in the same request must be for the same project; separate your push notifications by project.



但是我的代币全混了!

如何按项目分离 Expo 推送通知 token ?

最佳答案

想出了这个问题的答案!

expo-server-sdk Expo的节点客户端,details Expo返回的error字段包含了哪些token属于哪些项目的所有信息。

示例代码

const { Expo } = require('expo-server-sdk');

const expo = new Expo();

const sendNotifications = async () => {

const notifications = [ ... ];
const chunks = expo.chunkPushNotifications(notifications);

for (const chunk of chunks) {

try {
await expo.sendPushNotificationsAsync(chunk)
}

catch (error) {
console.log(JSON.stringify(error));

// The important part:
// error.details = { EXPO_PROJECT_NAME: [ ExponentPushTokens ] }
}
}
}

关于react-native - 如何识别一个 Expo Push Notification Token 所属的 Expo 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59537869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com