To access a value in your database, you create a
DatabaseReference
for that location. Here are three references to locations in your database:DatabaseReference zonesRef = FirebaseDatabase.getInstance().getReference("ZONES");
DatabaseReference zone1Ref = zonesRef.child("ZONE_1");
DatabaseReference zone1NameRef = zone1Ref.child("ZNAME");
In this snippet:
zonesRef
points to/ZONES
zone1Ref
points to/ZONES/ZONE_1
zone1NameRef
points to/ZONES/ZONE_1/ZNAME
getValue();
DataSnapshot.getChildren();
To get value from Database on Button click:
You can use
addValueEventListener()
to retrieve data when an event is triggered.
In your
onClick()
method you can write :DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
// In the database whenever any data is changed then the below code snipped is going to be executed.
mDatabase.child("<dbLocationTag>").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// the changed value is going to be stored into the dataSnapshot
// to retrieve value from dataSnapshot we write
String value = dataSnapshot.getValue(String.class);
mValueView.setText(value);
// NOTE: if you've multiple childs of same node then you can use Map to display all of them : EG:
/*Map<String, String> map = dataSnapshot.getValue(Map.class);
String val1 = map.get("val1");
String val2 = map.get("val2");
String val3 = map.get("val3");
Log.v("TAG", "Value 1 "+val1);
Log.v("TAG", "Value 2 "+val2);
Log.v("TAG", "Value 3 "+val3);
*/
}
@Override
public void onCancelled(FirebaseError firebaseError) {
mValueView.setText(firebaseError.toString());
}
});
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
https://stackoverflow.com/questions/44811526/datasnapshot-has-the-object-but-getvalue-will-return-null
DataSnapshot.getKey();
https://stackoverflow.com/questions/38232140/how-to-get-the-key-from-the-value-in-firebase
Comments
Post a Comment