This is my fire base data structure:
I am retrieving the data from database using the following method
private DatabaseReference mFirebaseDatabase=FirebaseDatabase.getInstance().getReference();;
private FirebaseDatabase mFirebaseInstance;
mFirebaseDatabase.child("users").child(userId).child(time).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
Log.d("Tag", "Value is: " + value);
System.out.println("Values is :::::::::::::::::::::::::::::::::::: "+value);
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Failed to read value
Log.w("Tag", "Failed to read value.", databaseError.toException());
}
});
i am getting the below error
Caused by: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
please help
userID part, this is where i create a new entry to store data to the table
private void createUser(String name, String time, String lat, String lon) {
// In real apps this userId should be fetched
// by implementing firebase auth
if (TextUtils.isEmpty(userId)) {
userId = mFirebaseDatabase.push().getKey();
System.out.println("Userid is ------------------------------> "+userId);
}
User user = new User(name, time,lat,lon);
mFirebaseDatabase.child(userId).setValue(user);
addUserChangeListener();
}
/**
* User data change listener
*/
private void addUserChangeListener() {
// User data change listener
mFirebaseDatabase.child(userId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
// Check for null
if (user == null) {
Log.e(TAG, "User data is null!");
return;
}
Log.e(TAG, "User data is changed!" + user.name + ", " + user.time);
System.out.println("User data is changed!" + user.name + ", " + user.time);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.e(TAG, "Failed to read user", error.toException());
}
});
}
The above code is used for userId generation,userId is dynamically created every time when a insert function is called