应用邀请使用Firebase无法正常工作

时间:2016-10-18 11:03:21

标签: android firebase firebase-invites

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

遵循的步骤

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

代码段

InviteActivity

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

2 个答案:

答案 0 :(得分:6)

经过几个小时的斗争找到了问题并修复了它,在此发布,因为它也可能对其他人有所帮助。

最初的提示是"创建邀请失败了错误代码:3"这里有一个类似的问题 Get suggested invitees failed due to error code: 3

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

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

答案 1 :(得分:2)

  1. 登录Firebase控制台:https://console.firebase.google.com

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

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

  4. firebase