6

开发一个以 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 的新手,如果能指出我做错了什么,将不胜感激。

4

2 回答 2

6

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

最初的提示是“创建邀请失败,错误代码:3”在 SO Get建议的受邀者中出现类似问题, 由于错误代码:3

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

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

于 2016-10-19T05:14:37.067 回答
2
  1. 登录 Firebase 控制台:https ://console.firebase.google.com

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

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

火力基地

于 2016-10-20T16:21:00.627 回答