How to retrieve 'double' values saved under one key in Firebase?

前端 未结 3 1735
灰色年华
灰色年华 2021-01-17 06:21

I have stored Geofire coordinates in database and now I\'m trying to retrieve them using childEventListener() like this:

    mDatab         


        
3条回答
  •  情话喂你
    2021-01-17 07:04

    If you use addChildEventListener, the DataSnapshot produced is from the child node of the referenced node. So in your case, your ref node is l, then inside onChildAdded, the dataSnapshot is :

    • key 0 with value 28.8...

    • key 1 with value 78.7...

    So the onChidAdded() will be called twice.

    You can modify your code based on that logic or use addValueEventListener instead. And if you use addValueEventListener, your code will be like this:

    mDatabase.child("geofire").child(key).child("l").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.getValue() != null) {
                Double d1 = (Double) dataSnapshot.child("0").getValue();
                Double d2 = (Double) dataSnapshot.child("1").getValue();
    
                venueLatString = String.valueOf(d1);
                venueLngString = String.valueOf(d2);
            } else {
                Toast.makeText(getBaseContext(), "NULLL", Toast.LENGTH_SHORT).show();
            }
        }
    
        ...
    });
    

    Hope this helps

提交回复
热议问题