我正在尝试实现expo push notification!我做了文档中提到的所有事情。创建了一个firebase项目,下载了google-services.json
,并使用expo push:android:upload --api-key <your-token-here>
将云消息传递上的服务器密钥上传到expo服务器!所以基本上我做了他们文档中提到的所有事情!当我在Expo GO上测试时,我的通知工作得非常好!但在我使用eas build -p android --profile preview
构建了一个APK之后,通知没有弹出!我发送的API说通知已发送,但它没有显示在设备上!我读到通知在expo go上工作,而不是APK,因为凭据!我错过了一个步骤或什么?当我去博览会构建和去项目凭据弹出两个选项,一个路径的com.company.app和另一个:由遗产(经典建设)!app.json
{
"expo": {
"name": "myapp",
"slug": "myapp",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": ["**/*"],
"ios": {
"supportsTablet": true
},
"android": {
"googleServicesFile": "./google-services.json",
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
},
"package": "com.hyrix.myapp",
"useNextNotificationsApi": true
},
"web": {
"favicon": "./assets/favicon.png"
},
"extra": {
"eas": {
"projectId": "ee001501-c3b5-402f-8a1d-914144496965"
}
}
}
}
1条答案
按热度按时间webghufk1#
您可以在将Android智能手机连接到PC后检查Android Studios的logcat。
我尝试在Android Studio的logcat中调试应用,但收到以下错误消息:
'[expo-notifications]使用服务器更新设备推送令牌时遇到错误:','{“错误”:[{“代码”:“VALIDATION_ERROR”,“消息”:“\“appId\”必须是字符串。",“isTransient”:false}]}'
我解决这个问题的方法是在
Notifications.getExpoPushTokenAsync()
方法中手动设置“applicationId”。applicationId
可以在应用的firebase配置中找到,如appId
。方法getExpoPushTokenAsync()
可以接收一些参数,可能其中一些参数设置不正确。