开发具有Firebase作为后端的应用程序。目前,在实施Firebase App Invite时卡住了。只是想发送邀请(目前没有尝试通过已安装的新用户实现动态链接的点击),但 onActivityResult 会返回错误的 result_code
遵循的步骤
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的新功能,如果指出我做错了什么,我将不胜感激。
答案 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)
登录Firebase控制台:https://console.firebase.google.com
您需要点击"添加指纹"按钮,然后添加您的SHA1密钥。您不需要重新下载google-services.json,只需添加SHA1密钥。
尝试从您的应用发送应用邀请。现在可以了。