在模块ExpoPushTokenManager上执行导出的方法getDevicePushTokenAsync时出现异常 [英] Exception occurred while executing exported method getDevicePushTokenAsync on module ExpoPushTokenManager

本文介绍了在模块ExpoPushTokenManager上执行导出的方法getDevicePushTokenAsync时出现异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我升级了我的博览会推送通知,每当我在Android上运行它时,我都会收到以下错误:

执行导出的方法时出现异常 模块ExpoPushTokenManager上的getDevicePushTokenAsync。请设置 您的项目ID。需要有效的FireBase项目ID才能 与Firebase服务器API通信:它用来标识您的项目 Goolge。

谁能告诉我应该把项目ID放在哪里?我将其链接到我的config.js文件中的项目中,但我觉得它也应该在我的app.json文件中,只是不能100%确定在哪里。

{
  "expo": {
    "name": "Galavant",
    "slug": "Galavant",
    "platforms": ["ios", "android", "web"],
    "version": "2.0.8",
    "orientation": "portrait",
    "icon": "./assets/logo.png",
    "splash": {
      "image": "./assets/logo_original.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": ["**/*"],
    "ios": {
      "usesAppleSignIn": true,
      "infoPlist": {
        "NSCameraUsageDescription": "So you can add photos to your profile.",
        "NSPhotoLibraryUsageDescription": "So you can add photos to your profile.",
        "NSLocationWhenInUseUsageDescription": "So you can connect with people nearby."
      },
      "supportsTablet": true,
      "bundleIdentifier": "com.test.test",
      "buildNumber": "0.0.1",
      "config": {
        "googleSignIn": {
          "reservedClientId": "com.googleusercontent.apps.12346789"
        }
      }
    },
    "android": {
      "package": "com.test.test",
      "useNextNotificationsApi": true,
      "versionCode": 5,
      "config": {
        "googleMaps": {
          "apiKey": "asdkjfkasjdf9837983rlkajshf"
        },
        "googleSignIn": {
          "apiKey": "asdkjfkasjdf9837983rlkajshf", 
          "certificateHash": "33345w4sdfasdkjfkasjdf9837983srlkajshf"
        }
      },
      "permissions": [
        "ACCESS_COARSE_LOCATION",
        "ACCESS_FINE_LOCATION",
        "CAMERA",
        "MANAGE_DOCUMENTS",
        "READ_CONTACTS",
        "READ_CALENDAR",
        "WRITE_CALENDAR",
        "READ_EXTERNAL_STORAGE",
        "READ_PHONE_STATE",
        "RECORD_AUDIO",
        "USE_FINGERPRINT",
        "VIBRATE",
        "WAKE_LOCK",
        "WRITE_EXTERNAL_STORAGE",
        "com.anddoes.launcher.permission.UPDATE_COUNT",
        "com.android.launcher.permission.INSTALL_SHORTCUT",
        "com.google.android.c2dm.permission.RECEIVE",
        "com.google.android.gms.permission.ACTIVITY_RECOGNITION",
        "com.google.android.providers.gsf.permission.READ_GSERVICES",
        "com.htc.launcher.permission.READ_SETTINGS",
        "com.htc.launcher.permission.UPDATE_SHORTCUT",
        "com.majeur.launcher.permission.UPDATE_BADGE",
        "com.sec.android.provider.badge.permission.READ",
        "com.sec.android.provider.badge.permission.WRITE",
        "com.sonyericsson.home.permission.BROADCAST_BADGE"
      ]
    },
    "notification": {
      "icon": "./assets/PushNotification.png"
    }
  }
}

推荐答案

我尝试切换到托管流,尝试处理后台通知(在EXPO Go中不起作用),但收到完全相同的错误(在提到项目ID的同时获取世博推送令牌时无法启动)。

我最终还是让我的手机正常工作了。这就是我在帮助他人时遇到的困难...

首先,我确认我有这两个密钥:

  "googleServicesFile": "./google-services.json",
  "useNextNotificationsApi": true,
其次,我认为我没有完全正确地浏览所有https://docs.expo.dev/push-notifications/using-fcm/。我让整个客户端设置都在工作,但后来忘记了上载服务器凭据。

第三,也可能是最令人困惑的一点,我对发布和更新也是新手。我在我的应用程序上创建了一个调试页面,显示了它从Play Store运行的版本(至少我认为它是这样做的)。但它只有在我向内部测试发布Play应用程序后打开,然后关闭并重新打开时才会更新……在了解了更多关于OTA更新的信息后,我意识到这实际上就是发生的事情,而且我实际上并没有使用新的Android密钥集获得最新版本,尽管我的Constants.mark.android.versionCode和应用程序版本似乎在更新(因为它们以某种方式提供了OTA..)。

因此,修复我的最后一件事是通过Play手动卸载我的内部测试应用程序,然后从头开始重新安装!

这篇关于在模块ExpoPushTokenManager上执行导出的方法getDevicePushTokenAsync时出现异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆