【问题标题】:App invites using Firebase not working使用 Firebase 的应用邀请不起作用
【发布时间】:2016-10-18 11:03:20
【问题描述】:

开发一个以 Firebase 作为后端的应用。目前,在实施 Firebase App Invite 时卡住了。只是想发送邀请(目前没有尝试实现已安装的新用户点击动态链接)但 onActivityResult 返回错误 result_code

接下来的步骤

  • 集成 FireBase SDK 并成功验证。
  • 已启用 Firebase 动态链接并在应用中引用
  • 点击邀请按钮会显示内置 Firebase 活动,其中包含选择要邀请和发送的用户的选项(短信或电子邮件邀请)
  • 应用按预期返回到邀请屏幕。

代码片段

邀请活动

 btnInvite.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new AppInviteInvitation.IntentBuilder(INVITATION_TITLE)
                        .setMessage(INVITATION_MESSAGE)
                        .setDeepLink(Uri.parse("https://ewyc6.app.goo.gl/eNh4"))
                        .setCallToActionText(INVITATION_CALL_TO_ACTION)
                        .build();
                startActivityForResult(intent, REQUEST_INVITE);
            }
        });

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d(TAG, "onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode + "result_ok ="+RESULT_OK);

        if (requestCode == REQUEST_INVITE) {
            if (resultCode == RESULT_OK) {

                // You successfully sent the invite,
                // we can dismiss the button.
                btnInvite.setVisibility(View.GONE);

                String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data);
                StringBuilder sb = new StringBuilder();
                sb.append("Sent ").append(Integer.toString(ids.length)).append(" invitations: ");
                for (String id : ids) sb.append("[").append(id).append("]");
                Toast.makeText(getApplicationContext(),"Invited!!!",Toast.LENGTH_SHORT).show();

            } else {

                Toast.makeText(getApplicationContext(),"Sorry, unable to send invite.",Toast.LENGTH_SHORT).show();

            }
        }
    }

//result_code 为 3,调试时 RESULT_OK 为 -1

Firebase 的新手,如果指出我做错了什么,将不胜感激。

【问题讨论】:

  • 是否可以在共享意图中显示所有共享应用程序?因为现在它唯一的选择是通过短信或电子邮件发送?

标签: android firebase firebase-invites


【解决方案1】:

经过数小时的努力,发现并修复了问题,将其发布在这里,因为它可能对其他人也有帮助。

最初的提示是“创建邀请失败,错误代码:3”在 SO 中有类似的问题 Get suggested invitees failed due to error code: 3

但在我的情况下,SHA1 证书已经添加,但 Firebase 中的包名称原来是区分大小写的问题。

还有一点值得注意,从 Firebase 下载的 google-services.json 中的“api_key”与 Web Api Key 无关。我试图将 web api 密钥从仪表板手动复制并粘贴到 json 文件到 api_key,但误解可能是导致错误的问题。

【讨论】:

  • 谢谢你——你的解释对我帮助很大。
【解决方案2】:
  1. 登录 Firebase 控制台:https://console.firebase.google.com

  2. 您需要单击“添加指纹”按钮,然后添加您的 SHA1 密钥。您确实不需要重新下载您的 google-services.json,您只需要添加 SHA1 密钥。

  3. 尝试从您的应用发送应用邀请。它现在可以工作了。

【讨论】:

    猜你喜欢
    • 2017-10-16
    • 2018-06-12
    • 2017-09-10
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    相关资源
    最近更新 更多