Firebase Api 9. +を使用してAndroidアプリケーションを作成しています。Firebase onDataChangeは、しばらくしてからオープニングアプリケーションと呼ばれていません。
私はFirebase認証とデータベースを使用しています。
私のアプリにアクセスしてログインすると、すべてうまく行き、valueEventListenersによってデータが正しく取得されます。
私の問題は、私はいくつかの時間後に私のアプリにアクセスしたときに起動し、それがすでにログインされています。
認証が確認されているようだが、私のリスナーのどれがトリガされていないと何も取得されていないようにみえます。
私のアプリケーションを正常に動作させるには、もう一度ログアウトして再度ログインする必要があります。
「セッションの期限が切れている」問題なのか、自分のコードに書き忘れたのか分かりません。ここで
は私valueEventListenersのいずれかです。
DatabaseReference myFirebase = FirebaseDatabase.getInstance().getReference();
hairDresserFirebase = myFirebase.getReference("hairDressers");
hairDresserFirebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
HairDresser hd = snapshot.getValue(HairDresser.class);
if (hairDresserList.contains(hd)) hairDresserList.remove(hd);
hairDresserList.add(hd);
}
mRecyclerView.getAdapter().notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
他は参考のためにのみ変更されます。
これらはすべて異なるフラグメントのonCreateView()メソッド内にあります。
これは、ユーザーがすでにログインしているかどうかを確認するために私のスプラッシュ活動ののonCreate()メソッドをint実行されるコードです:活動における私のログはユーザーがログインしていない場合にのみ起動している間に
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user == null) return;
authenticated = true;
}
};
電子メールとパスワードまたはFacebookでログインする完全な手順を実行し、正常に動作します。
私はこの問題を解決するための何かを見つけることができませんでした。ユーザーがアプリケーションを開くたびに再認証を強制したくありません。
私を助けてください:)
** 1 ** ** myFirebase **リファレンスの減速度を追加できますか? ** 2。**アプリケーションをデバッグしましたか?あなたは** onDataChange **と** onCancelled **が呼び出されていないと確信していますか?何が呼び出されたのか、何がなかったのかを正確に見るためには、あらゆるメソッドとあらゆる* if *文でLog printを追加することをお勧めします。 –
1.私は宣言を追加しました。 2.はい、どこにでもログを追加しました。何も印刷されませんでした。 –
firebase:9.0.2で電子メール/パスワード認証を使用するのと同じ問題があります。 – Blodhgard