28

我正在尝试使用 Firebase 邀请发送邀请。当从联系人中选择一封电子邮件时,Firebase 表示已发送邀请,但从未收到该电子邮件。

在控制台上配置了 SHA1 证书。

返回的错误代码始终为 RESULT_OK,并且从 AppInviteInvitation.getInvitationIds 返回的邀请数是正确的。

SDK 在 gradle 上更新为最新版本 10.0.1,如文档中所述。

创建邀请的代码是:

Intent intent = new AppInviteInvitation.IntentBuilder(title)
                .setMessage(msg)
                .setCallToActionText(callToActionText)
                .setOtherPlatformsTargetApplication(AppInviteInvitation.IntentBuilder.PlatformMode.PROJECT_PLATFORM_IOS, IOS_CLIENT_ID)
                .build();

有任何想法吗?

4

2 回答 2

2

我遇到了同样的问题并且我设法解决了它,尽管我不太确定哪一步实际上有帮助。

值得指出的是,在我的情况下,当我删除方法调用时,电子邮件已完美发送:

.setOtherPlatformsTargetApplication(...)

应用了以下步骤:

  1. 所有字段都在 Firebase 控制台上填写,用于 Android 和 iOS 项目设置(包括 App ID 前缀和 App Store ID)。
  2. 为 Firebase Android 项目设置添加了 SHA-256 哈希(来自调试和发布密钥库):

    keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v
    
  3. 更新google-services.json是从 Firebase Android 项目设置下载并添加到应用程序根目录(使用 GoogleServicesJson Build Action for Xamarin)。因此,该文件除其他外包含以下内容:

    ...
    "appinvite_service": {
      "status": 2,
      "other_platform_oauth_client": [
        {
          "client_id": "1234567890-specified_ios_client_id.apps.googleusercontent.com",
          "client_type": 2,
          "ios_info": {
            "bundle_id": "ios.app.bundle.id",
            "app_store_id": "9876543210"
          }
        },
        ...
      ]
    }
    ...
    

方法调用和方法中的指定client_id相同.setOtherPlatformsTargetApplication(...)google-services.json

Firebase Invites 之前也针对 iOS 项目进行了调整,但我不知道它是否对 Android 有帮助。

于 2017-06-16T17:26:30.780 回答
0

删除.setOtherPlatformsTargetApplication(...)允许 Android 再次发送邀请。

但是,当在 iOS 上收到邀请时,它们可以正常打开链接:

  • 安装了应用程序的 Gmail 或邮件(正确打开应用程序)

它们不能正常工作:

  • 在未安装应用程序的情况下在 Safari 中链接阅读电子邮件,转到 Google Play 商店
    • 未安装应用程序的 Gmail 或邮件应用程序中的链接转到 google play 商店
于 2018-03-10T07:13:44.003 回答