React Native 世博会推送通知工作在世博会去,但不工作在apk(生产)

nbnkbykc  于 2023-01-31  发布在  React
关注(0)|答案(1)|浏览(125)

我正在尝试实现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"
      }
    }
  }
}
webghufk

webghufk1#

您可以在将Android智能手机连接到PC后检查Android Studios的logcat。
我尝试在Android Studio的logcat中调试应用,但收到以下错误消息:
'[expo-notifications]使用服务器更新设备推送令牌时遇到错误:','{“错误”:[{“代码”:“VALIDATION_ERROR”,“消息”:“\“appId\”必须是字符串。",“isTransient”:false}]}'
我解决这个问题的方法是在Notifications.getExpoPushTokenAsync()方法中手动设置“applicationId”。

Notifications.getExpoPushTokenAsync({applicationId: "xxxxxx..."})

applicationId可以在应用的firebase配置中找到,如appId。方法getExpoPushTokenAsync()可以接收一些参数,可能其中一些参数设置不正确。

相关问题