Firebase をバックエンドとするアプリを開発しています。現在、 Firebase App Invite の実装中にスタックしていました。招待を送信しようとしているだけです(現在、インストールされた新しいユーザーによる動的リンクのクリックを実装しようとしていません)が、onActivityResultは間違ったresult_codeを返します
たどった手順
- FireBase SDK を統合し、認証に成功しました。
- Firebase Dynamic link を有効にし、アプリで参照しました
- 招待ボタンをクリックすると、組み込みの Firebase アクティビティが表示され、招待して送信するユーザーを選択するオプション (SMS または電子メール招待) が表示されます。
- アプリは期待どおりに招待画面に戻ります。
コードスニペット
招待活動
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 の初心者です。私が間違っていることを指摘していただければ幸いです。