Firebase邀请说已发送邀请但尚未收到

时间:2016-12-02 21:23:05

标签: android firebase firebase-invites

我尝试使用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();

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题而且我设法解决了这个问题,虽然我不确定哪一步确实有帮助。

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

.setOtherPlatformsTargetApplication(...)

采用了以下步骤:

  1. 所有字段都填写在Firebase控制台上,用于Android和iOS项目设置(包括App ID Prefix和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"
          }
        },
        ...
      ]
    }
    ...
    
  4. 指定的client_id.setOtherPlatformsTargetApplication(...)方法调用和google-services.json

    中相同

    Firebase Invites之前已经针对iOS项目进行了调整,但无论如何我都不知道它是否对Android有帮助。

答案 1 :(得分:0)

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

在iOS上收到邀请时,他们可以正常打开链接:

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

它们无法正常工作:

  • 使用未安装的应用程序链接阅读Safari中的电子邮件,转到谷歌 应用商店
    • Gmail或Mail应用中未安装应用的链接转到Google Play商店