2016-05-27 8 views
4

私はFirebaseを数ヶ月間正常にアプリケーションで使用してきました。私はちょうどバージョンのバージョンを使用して更新を終了し、私は把握することができない1つの問題が残っている。Firebaseの単一値イベントリスナーが返されない

私のMainActivity onCreate関数で、ユーザーがFirebaseにログインしているかどうかを確認します。ユーザーがログインしている場合、自分のデータベースにあるユーザーオブジェクトを取得しようとします。

これは私がこれに問題があるアプリの唯一のインスタンスです。ユーザーがサインインされていることを確認し、DatabaseReferenceが正しいURLを指していることを確認しました。

DatabaseReferenceが作成され、リスナーが追加されますが、リスナーに何も今までに発射していない...私が間違ってやっているかについて

FirebaseAuth auth = FirebaseAuth.getInstance(); 

    if (auth != null && auth.getCurrentUser() != null) { 
     DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child(USERS).child(auth.getCurrentUser().getUid()); 
     userRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       // Logic for success is here... 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

       // Logic for failure is here... 
      } 
     }); 
    } 

任意のアイデア?

+0

ブロックすればこれまでに入りますか?あなたはそれを踏んだのですか? – muratgu

+0

私はそれを踏襲し、ログステートメントを追加しました。 if文に入り、DatabaseRefが作成され、リスナーは決して起動しません。 – Eagle11

+0

どのような種類の認証を使用していますか?それはカスタム認証に問題があるようです... – Ymmanuel

答えて

4

Firebase Authトークンが正しくリフレッシュされない原因となるプロジェクト構成に問題があります。 Firebaseコンソールに、あなたのアプリケーション用のSHA-1指紋を追加する必要があります。

Firebaseコンソールでプロジェクトの概要ページに移動します。問題のアプリの設定オーバーフローメニューを選択し、[管理]をクリックします。 SHA-1値を追加するボタンがあります。

this guideの手順に従って、お使いのアプリのSHA-1値を取得できます。 google-services.jsonファイルをAndroid Studioのアプリに再ダウンロードして追加する必要があるかもしれませんが、私はそうしませんでした。

この類似のstackoverflow questionには、必要に応じて詳細が含まれています。

0

あなたはその認証がDBにアクセスするために必要とされていないことを確認するために

{ 
    "rules": { 
     ".read": "auth == null", 
     ".write": "auth == null" 
    } 
} 

にルールを変更する必要がある任意の方法を介してユーザを認証されていない場合。

関連する問題