onCreate()
の中に以下のメソッドを挿入します。このメソッドを起動すると、このメソッドが起動されます。しかしmName
をValueEventListener()
の外にしようとすると、null
が返され、アプリがクラッシュします。データを取得するFirebaseベースのデータなしメソッド
誰でもこの問題が発生する理由を知っていますか? Firebaseはまだデータを取得していなかったので、あなたがやる時にはまだだ
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
UserDetails info = dataSnapshot.getValue(UserDetails.class);
Log.d(TAG, String.valueOf(dataSnapshot));
mName = info.getName();
**Log.d(TAG, mName); // HERE GET THE NAME**
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "getUser:onCancelled", databaseError.toException());
}
};
mDatabase.child("Admin")
.child("Info")
.child(uid)
.addValueEventListener(postListener);
**Log.d(TAG, mName); // HERE GET NULL**
偉大な説明、ありがとうございます。しかし、これは別の質問から出てきます。データを別のアクティビティにその場で渡すにはどうすればいいですか?私はonDataChangeメソッドの中にsqliteを使ってデータを格納しようとしました。しかし、それを取得するには、私は、アプリケーションを閉じて再オープンする必要があります。 – user3606920