调用getExpoPushTokenAsync遇VALIDATION_ERROR:projectId需为有效GUID求助
问题原因及解决方案
核心问题
你混淆了projectId的来源:Notifications.getExpoPushTokenAsync要求传入的不是Firebase的项目ID,而是Expo项目的GUID(全局唯一标识符),这是两个完全不同的标识。
解决步骤
- 获取正确的Expo项目GUID
- 打开Expo网页端控制台,找到你的项目,在项目详情页中就能看到格式为
xxxx-xxxx-xxxx-xxxx的GUID; - 或者查看本地项目根目录下的
app.json/app.config.js文件,expo.id字段的值就是这个GUID。
- 打开Expo网页端控制台,找到你的项目,在项目详情页中就能看到格式为
- 修正代码
将projectId的值替换为Expo项目的GUID,示例如下:const expoPushToken = await Notifications.getExpoPushTokenAsync({ projectId: '你的Expo项目GUID', }); - 更简便的方式
如果你的项目是通过expo init创建的,app.json中已经配置了expo.id,调用getExpoPushTokenAsync时可以省略projectId参数,它会自动从配置文件中读取,避免手动输入出错:const expoPushToken = await Notifications.getExpoPushTokenAsync();
内容的提问来源于stack exchange,提问作者Itai Mizlish
相关产品推荐
相关产品推荐

