【问题标题】:check if a key exist firebase Android检查密钥是否存在 firebase Android
【发布时间】:2015-06-07 21:29:39
【问题描述】:

我想检查 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”。

【问题讨论】:

  • 在 javascript 中你会得到一个snapshot,然后调用hasChild。请在此处查看 Frank 的回答:stackoverflow.com/questions/24824732/… Java API 文档包含有关 Java hasChild 方法的详细信息:firebase.com/docs/java-api/javadoc/com/firebase/client/… 这有帮助吗?
  • 感谢您的回复,我正在检查密钥是否存在而不是孩子,但我偶然发现了这个exists public boolean exists() Returns true if the snapshot contains a non-null value. Returns: True if the snapshot contains a non-null value, otherwise false我想就是这样,现在只需要弄清楚如何使用它。
  • 只需要这个功能就可以工作了

标签: android key firebase exists not-exists


【解决方案1】:

如果你想检查密钥是否存在,试试这个。

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

    }
});

【讨论】:

    【解决方案2】:

    只需要使用这个布尔函数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 有同样的问题,这将修复交易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2011-06-05
      相关资源
      最近更新 更多