React native 如何识别世博推送通知令牌所属的世博会项目? 前提
不管是好是坏,我使用两个Expo帐户作为我的生产和开发环境React native 如何识别世博推送通知令牌所属的世博会项目? 前提,react-native,push-notification,expo,React Native,Push Notification,Expo,不管是好是坏,我使用两个Expo帐户作为我的生产和开发环境 Production Expo Account: prod-proj Development Expo Account: dev-proj 我使用Expo的推送通知服务向我的用户发送推送通知。我将每个用户的Expo Push通知令牌存储在他们的用户文档中。i、 e: User id: 1 name: Jimothy token: ExponentPushToken[di3ja!-lk2^(24af] 通过一系列
Production Expo Account: prod-proj
Development Expo Account: dev-proj
我使用Expo的推送通知服务向我的用户发送推送通知。我将每个用户的Expo Push通知令牌存储在他们的用户文档中。i、 e:
User
id: 1
name: Jimothy
token: ExponentPushToken[di3ja!-lk2^(24af]
通过一系列不幸的事件,我的数据库中的大多数用户都使用prod proj
Expo项目创建了推送通知,但少数用户使用dev proj
创建了推送通知
问题 当我尝试分块并向所有用户发送推送通知时,我从Expo收到一个错误: 错误:同一请求中的所有推送通知消息必须用于同一项目;按项目分隔推送通知 但是我的代币都混在一起了
如何按项目区分世博推送通知令牌?找到了这个问题的答案 在expo的
expo server sdk
节点client for expo中,expo返回的错误的details
字段包含关于哪些令牌属于哪些项目的所有信息
示例代码
const{Expo}=require('Expo-server-sdk');
const expo=新世博会();
const sendNotifications=async()=>{
常量通知=[…];
const chunks=expo.chunkPushNotifications(通知);
for(常量块中的块){
试一试{
等待世博会。sendPushNotificationsAsync(区块)
}
捕获(错误){
log(JSON.stringify(error));
//重要的部分是:
//error.details={EXPO_项目名称:[ExponentPushTokens]}
}
}
}
我现在面临同样的问题,我们能做的最好的事情可能是将expo推送令牌和体验id一起发送到后端。从那里,根据经验将代币分组,并像我们通常做的那样发送这些组
从“expo常量”导入常量;
const experienceId=Constants.manifest.id;//@用户/项目slug