如何检查Firebase查询是否返回多个记录?

时间:2018-07-31 08:40:32

标签: android firebase firebase-realtime-database

似乎Firebase Query没有用于返回记录计数的方法。但是,我需要根据返回的记录执行一些数据操作。

var queryRef=database.child("Family").orderByChild("age").limitToFirst(10)

queryRef.addListenerForSingleValueEvent(object : ValueEventListener 
{
    override fun onDataChange(p0: DataSnapshot) {
           if(p0.exists()){
             // do something
         }
    }

    override fun onCancelled(p0: DatabaseError) {
    }

})

但是,类似地,我想要的是p0.resultsCount而不是p0.exists()。帮帮我,如果可以的话,可以找出返回的记录数。

3 个答案:

答案 0 :(得分:1)

您可以使用以下方法计算Firebase参考指向的子代数。

getChildrenCount()

对您来说p0.getChildrenCount()

答案 1 :(得分:1)

您可以使用此方法检查孩子的数量。

dataSnapshot.getChildrenCount();

或者您可以将数据快照转换为哈希图,以检查查询中的节点数,然后检查其大小。

HashMap hashMapAccounts = (HashMap) dataSnapshot.getValue();
hashMapAccounts.size();

答案 2 :(得分:1)

您可以通过

进行计数
var queryRef=database.child("Family").orderByChild("age").limitToFirst(10)

queryRef.addListenerForSingleValueEvent(object : ValueEventListener 
{
    override fun onDataChange(p0: DataSnapshot) {
           if(p0.exists()){
             // do something
             val count:Int? = p0.childrenCount
           }
    }

override fun onCancelled(p0: DatabaseError) {
}

});