检查一个密钥是否存在firebase Android

时间:2015-04-02 19:45:55

标签: android key firebase exists not-exists

我想检查firebase数据库中是否存在密钥。例如,我想查找关键字“upvotes”以查看它是否存在。

这是一个例子,这里不存在“upvotes”键: enter image description here

现在我尝试检查“upvotes”键是否位于此位置:

        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";
            }

我的尝试是错误的,所以如何检查此位置是否存在“upvotes”键。

2 个答案:

答案 0 :(得分:4)

只需要使用此布尔函数containsKey

所以...

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");
            }

如果有人对upvotes有同样的问题,这将修复交易。

答案 1 :(得分:2)

如果您想检查密钥是否存在,请尝试此操作。

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) {

    }
});