6

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 の初心者です。私が間違っていることを指摘していただければ幸いです。

4

2 に答える 2

6

何時間もの闘争の後、問題を見つけて修正し、他の人にも役立つ可能性があるため、ここに投稿しました.

最初のヒントは「エラー コード: 3 で招待状の作成に失敗しました」 でした

しかし、私の場合、SHA1 証明書は既に追加されていましたが、Firebase のパッケージ名は大文字と小文字を区別する問題であることが判明しました。

もう1点、Firebaseからダウンロードしたgoogle-services.jsonの「api_key」とWeb Api Keyは関係ありません。問題がエラーにつながる可能性があるという誤解の下で、web api キーをダッシュ​​ボードから api_key に手動で json ファイルにコピーして貼り付けようとしました。

于 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 に答える