Ad
When Querying The Database Has The Object But GetValue() Will Return Null
I keep user per unique value into real time firebase as display at this link image:
get user according to email - database firebase
I want to get user by email, so I try to doing that like this:
private void getUserFromRealtimeFirebase(String email) {
mFirebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebaseDatabase.getReference().child("user");
Query query = mDatabaseReference.orderByChild("email").equalTo(email);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.i("TAG", "dataSnapshot value = " + dataSnapshot.getValue().toString());
if (dataSnapshot.exists()) {
Log.d("Tag", "user exists");
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
but I always get at callback listener: dataSnapshot: key = user , value = null even when email exists.
I wonder what is wrong?
Ad
Answer
EDIT:
If you don't want to pass userId, use this query:
mDatabaseReference = mFirebaseDatabase.getReference();
Query query = mDatabaseReference.orderByChild("user/email").equalTo(email);
You are missing the user-id level. You should change your code to:
private void getUserFromRealtimeFirebase(String email, String userId) {
mFirebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebaseDatabase.getReference().chlid(userId).child("user");
Query query = mDatabaseReference.orderByChild("email").equalTo(email);
...
...
}
Btw I would consider re-arranging the data structure to - newsapp -> users -> {userId} -> {name, image, firebase-token, email....}.
Also, on the callback - first check if dataSnapshot.exists() and only after that use getValue(), even if inside a log, to avoid null pointer exception.
Ad
source: stackoverflow.com
Related Questions
- → How can I query Firebase for an equalTo boolean parameter?
- → How can I access nested data in Firebase with React?
- → Firebase simple blog (confused with security rules)
- → Removing item in Firebase with React, re-render returns item undefined
- → AngularJS Unknown Provider Error (Firebase & AngularFire)
- → How do you pass top level component state down to Routes using react-router?
- → "this" is null in firebase query function in reactjs
- → Angular Module Failed to Load
- → Multiple dex files define Lcom/google/android/gms/internal/zzrx;
- → Joining Firebase tables in React
- → How can I make add firepad to my reactjs project?
- → How to use Cloud Functions for Firebase to prerender pages for SEO?
- → React.js component has null state?
Ad