Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何计算当前用户的子用户总数?_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 如何计算当前用户的子用户总数?

Android 如何计算当前用户的子用户总数?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,如何获取当前用户的子计数,例如,当前用户的电子邮件是uzahid231@gmail.com因此,我必须得到1,因为其他产品来自不同的用户使用官方文档,您应该能够将其翻译为您需要的语言 以swift方式完成: // Get reference to the DB let ref = db.collection("Products") // Query for the email field let query = ref.whereField("email"


如何获取当前用户的子计数,例如,当前用户的电子邮件是uzahid231@gmail.com因此,我必须得到1,因为其他产品来自不同的用户

使用官方文档,您应该能够将其翻译为您需要的语言

以swift方式完成:

// Get reference to the DB
let ref = db.collection("Products")

// Query for the email field
let query = ref.whereField("email", isEqualTo: "uzahid231@gmail.com").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            querySnapshot!.documents.count // <-- Number of documents
            for document in querySnapshot!.documents {
                // all the documents that satisfied the query
            }
        }


}

//获取对数据库的引用
let ref=数据库集合(“产品”)
//查询电子邮件字段
让query=ref.whereField(“电子邮件”,isEqualTo:”uzahid231@gmail.com“”.getDocuments(){(querySnapshot,err)在
如果让err=err{
打印(“获取文档时出错:\(错误)”)
}否则{

querySnapshot!.documents.count/类似这样的东西应该可以做到:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Products");
Query query = ref.orderByChild("uid").equalTo(uid);

query.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        System.out.println(dataSnapshot.getChildrenCount());
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}
请注意:

  • 我强烈建议继续搜索您的用例,因为有很多关于此alreaduy的信息:
  • <> LI>此代码读取所有匹配的子节点,因为FialBASE没有内置的聚合操作。如果您只读取当前用户的节点,可能不太坏,但是每当您这样做时,考虑您读取多少数据,以了解多少用户。数据库,并在编写产品时更新。有关更多信息,请参阅上面搜索结果中的一些答案
请分享一些代码。您尝试过什么。您的db的结构是什么?嘿,Usama。您在这方面有什么进展吗?下面有两个人试图帮助您。您是否有机会查看并尝试他们的答案?如果答案有用,请单击“向上投票”按钮(▲) 如果它回答了您的问题,请单击复选标记(✓) 接受它。这样其他人就知道你得到了(足够的)帮助。也可以看到代码是针对Cloud Firestore的,但从问题的屏幕截图来看,OP似乎使用了实时数据库。