使用 Firebase 的应用程序邀请不起作用
App invites using Firebase not working
正在开发一个以 Firebase 作为后端的应用程序。目前,在实施 Firebase App Invite 时卡住了。只是想发送邀请(目前没有尝试通过安装的新用户实现动态 link 的点击)但是 onActivityResult returns错了result_code
遵循的步骤
- 集成FireBase SDK并认证成功。
- 启用 Firebase Dynamic link 并在应用程序中引用
- 点击邀请按钮会显示内置的 Firebase Activity 以及 select 用户邀请和发送(短信或电子邮件邀请)的选项
- 应用 returns 按预期返回邀请屏幕。
代码片段
邀请Activity
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 的新手,如果指出我做错了什么,将不胜感激。
经过几个小时的努力发现并修复了问题,将其张贴在这里,因为它可能对其他人也有帮助。
最初的提示是 "Create invitations failed to error code: 3" 在 SO 中也有类似的问题
Get suggested invitees failed due to error code: 3
但在我的例子中,SHA1 证书已经添加,但 Firebase 中的包名称结果是一个区分大小写的问题。
还有一点需要注意,google-services.json中从Firebase下载的"api_key"与Web Api Key不相关。我试图将网络 api 密钥从仪表板手动复制并粘贴到 json 文件到 api_key,但我误以为这可能是导致错误的问题。
登录 Firebase 控制台:https://console.firebase.google.com
您需要单击 "Add Fingerprint" 按钮,然后添加您的 SHA1 密钥。您 不需要 重新下载您的 google-services.json,您只需要添加 SHA1 密钥。
尝试从您的应用发送应用邀请。现在可以使用了。
正在开发一个以 Firebase 作为后端的应用程序。目前,在实施 Firebase App Invite 时卡住了。只是想发送邀请(目前没有尝试通过安装的新用户实现动态 link 的点击)但是 onActivityResult returns错了result_code
遵循的步骤
- 集成FireBase SDK并认证成功。
- 启用 Firebase Dynamic link 并在应用程序中引用
- 点击邀请按钮会显示内置的 Firebase Activity 以及 select 用户邀请和发送(短信或电子邮件邀请)的选项
- 应用 returns 按预期返回邀请屏幕。
代码片段
邀请Activity
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 的新手,如果指出我做错了什么,将不胜感激。
经过几个小时的努力发现并修复了问题,将其张贴在这里,因为它可能对其他人也有帮助。
最初的提示是 "Create invitations failed to error code: 3" 在 SO 中也有类似的问题 Get suggested invitees failed due to error code: 3
但在我的例子中,SHA1 证书已经添加,但 Firebase 中的包名称结果是一个区分大小写的问题。
还有一点需要注意,google-services.json中从Firebase下载的"api_key"与Web Api Key不相关。我试图将网络 api 密钥从仪表板手动复制并粘贴到 json 文件到 api_key,但我误以为这可能是导致错误的问题。
登录 Firebase 控制台:https://console.firebase.google.com
您需要单击 "Add Fingerprint" 按钮,然后添加您的 SHA1 密钥。您 不需要 重新下载您的 google-services.json,您只需要添加 SHA1 密钥。
尝试从您的应用发送应用邀请。现在可以使用了。