check if a key exist firebase Android

2019-05-06 15:27发布

问题:

I want to check if a key exist in the firebase db. so for example, I want to look for the key "upvotes" to see if it exist or not.

Here is an exmaple, "upvotes" key does not exist in here:

Now I my attempt to check if the key "upvotes" is at this location:

        Map<String, Object> newPost = (Map<String, Object>) ids.next().getValue();
            if(newPost.get("upvotes").toString().equals("upvotes")){
                disp_rate = newPost.get("upvotes").toString();
            }
            else
            {
                disp_rate = "0";
            }

My attempt is wrong, so how do I check if the key "upvotes" exist at this location.

回答1:

Just needed to use this boolean function containsKey

so...

boolean check_rate = newPost.containsKey("upvotes");

if(check_rate == true){
                String disp_rate = newPost.get("upvotes").toString();
                rate_count.setText(disp_rate);
            }
            else{
                System.out.println("FAILED");
            }

This will fix the transaction if anyone is having the same issue with upvotes.



回答2:

If you want to check if key exist or not, try this.

firebaseRef.orderByKey().equalTo(key).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

              if(dataSnapshot.exists()) {
                   //Key exists
                   Log.d(TAG,""+key);
              } else {
                  //Key does not exist
              }

    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {

    }
});