1

我已经在我的应用中设置并成功使用了 Firebase 动态链接。我现在正尝试在同一个应用程序中包含 Firebase 邀请。我已按照此处的设置指南Firebase Invites setup guide。它的工作原理是显示选择器,我在其中选择电子邮件地址(或短信的手机号码),但是当我按下发送时,会出现一个红色的快餐栏,并显示消息“消息发送失败”并且 onActivityResult() 方法返回一个 resultCode 3。

我已经查看了 stackoverflow 上的所有类似问题,但无法解决问题。

在应用程序中设置动态链接时,我确实遇到了 SHA-1 问题,请在此处查看我的 stackoverflow 问题,但这已解决,并且动态链接可以正常工作。

我将不胜感激在获得邀请工作方面的任何帮助。谢谢。

4

3 回答 3

2

解决了这个问题。这都是关于 SHA-1 的。

最初我为调试版本生成了一个签名的 apk。然后,我使用 keytool 提取了此版本的 SHA-1,并将其添加到 firebase 控制台中的应用程序中。我的动态链接在这种情况下工作正常,但邀请不会,导致“消息发送失败”错误。

在查看 stackoverflow 上的类似问题时,我注意到 SHA 可能是问题所在。有些人建议在 firebase 控制台中同时包含调试和发布 SHA-1。所以我生成了一个签名的发布 apk 并提取了 SHA-1,才意识到它与调试 SHA-1 相同。

然后我尝试了另一种从调试版本中提取 SHA-1 的方法。1)(在 Android Studio 中)我打开了 Gradle 项目屏幕(右侧栏),2)然后在 gradle 项目窗口中,我选择了我的 app>Tasks>android>signingReport(双击 signingReport 运行并显示 SHA-1在屏幕底部的“运行”窗口中)。我注意到这个 SHA-1 与我从签名调试 apk 获得的 SHA-1 不同。

然后我将此 SHA-1 指纹添加到 firebase 控制台中的应用程序(所以我现在有这个调试 SHA-1 和发布 apk SHA-1 添加到 firebase 控制台中的应用程序)。邀请现在有效!

于 2016-08-14T12:34:03.513 回答
1

我意识到这很旧,但我遇到了同样的问题。有趣的是,我收到错误 3,7 天前无法发送。我通过生成新的 SHA1 和 SHA256 指纹、替换 Firebase 中的指纹并使用最新的 google-services.json 文件来“修复”它。

直到昨天它突然又开始返回错误 3 时,我才能够发送邀请。现在,3 套钥匙和 2 把头发之后,它仍然无法正常工作。我在 Play 商店中有一个 Alpha 版本;它使用的是我的设备正在运行的同一个 apk。我很茫然,我什至将我的本地存储库回滚到我在它工作的那天所做的提交。纳达……

于 2017-09-02T20:23:47.870 回答
1

对于遇到此问题的其他人,某些 google play 服务需要 SHA-1 密钥。邀请是需要密钥的服务之一。这确实没有直接在我能找到的应用程序邀请文档中的任何地方说明,但在下面的链接中非常清楚。以下文字取自:https ://developers.google.com/android/guides/client-auth

某些 Google Play 服务(例如 Google 登录和应用邀请)要求您提供签名证书的 SHA-1,以便我们可以为您的应用创建 OAuth2 客户端和 API 密钥。要获取您的 SHA-1,请按照以下说明操作:

打开终端并运行 Java 提供的 keytool 实用程序以获取证书的 SHA-1 指纹。您应该同时获得发布和调试证书指纹。

获取发布证书指纹:

keytool -exportcert -list -v \
-alias <your-key-name> -keystore <path-to-production-keystore>

获取调试证书指纹:

keytool -exportcert -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

keytool 实用程序会提示您输入密钥库的密码。调试密钥库的默认密码是 android。然后 keytool 将指纹打印到终端

于 2016-09-27T18:15:24.267 回答