我想检查firebase数据库中是否存在密钥。例如,我想查找关键字“upvotes”以查看它是否存在。
这是一个例子,这里不存在“upvotes”键:
现在我尝试检查“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”键。
答案 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) {
}
});