Android 如何从firestore获取子集合数据

Android 如何从firestore获取子集合数据,android,firebase,firebase-realtime-database,google-cloud-firestore,Android,Firebase,Firebase Realtime Database,Google Cloud Firestore,我有一个名为TripInfo的集合,下面是用户id,然后我为每个文档创建了自动生成id的子集合。问题是我无法使用以下代码获取数据: private void checkDataExistingDate() { db.collection("TripsInfo").document(UID).collection("Individual_Trip").document() .get().addOnCompleteListener(new OnCompleteList

我有一个名为TripInfo的集合,下面是用户id,然后我为每个文档创建了自动生成id的子集合。问题是我无法使用以下代码获取数据:

private void checkDataExistingDate() {
    db.collection("TripsInfo").document(UID).collection("Individual_Trip").document()
            .get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
        @Override
        public void onComplete(@NonNull Task<DocumentSnapshot> task) {
            if (task.getResult().exists()){
                DocumentSnapshot snapshot = task.getResult();

                Map<String, Object> map = snapshot.getData();
                for (Map.Entry<String, Object> entry : map.entrySet()) {

                        Log.d(Tag, "All data"+entry.getValue().toString());

                }

            }

        }
    });
private void checkDataExistingDate(){
数据库收集(“TripsInfo”).文档(UID).收集(“个人旅行”).文档()
.get().addOnCompleteListener(新的OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
如果(task.getResult().exists()){
DocumentSnapshot snapshot=task.getResult();
Map Map=snapshot.getData();
对于(Map.Entry:Map.entrySet()){
Log.d(标记“所有数据”+entry.getValue().toString());
}
}
}
});

或者我需要存储不带子集合的用户id吗?在实时情况下,我们使用push生成自动id,但我不知道在文档中放置用户id后创建密钥的等效方法。

假设您在TripsInfo集合中具有store userid with uid参数,并且在“TripsInf”中具有作为子集合的单独行程o'集合。您可以像这样获取子集合

FirebaseFirestore.getInstance()集合(“TripsInfo”)
.get()
.addOnCompleteListener(
新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
对于(QueryDocumentSnapshot文档:task.getResult()){
if(FirebaseAuth.getInstance().getUid().equalsIgnoreCase(document.getString(“uid”)){
document.getReference()
.收集(“个人旅行”)
.get()
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
list=task.getResult().toObjects(单个\u Trip.class);
showListOfRequest();
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
hideProgress();
}
});
打破
}
}
}
}

})
假设您在TripsInfo集合中具有带uid参数的store userid,并且在“TripsInfo”集合中还具有作为子集合的单个Trip。您可以这样获取子集合

FirebaseFirestore.getInstance()集合(“TripsInfo”)
.get()
.addOnCompleteListener(
新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
对于(QueryDocumentSnapshot文档:task.getResult()){
if(FirebaseAuth.getInstance().getUid().equalsIgnoreCase(document.getString(“uid”)){
document.getReference()
.收集(“个人旅行”)
.get()
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
list=task.getResult().toObjects(单个\u Trip.class);
showListOfRequest();
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
hideProgress();
}
});
打破
}
}
}
}

})
请将您的数据库结构添加为屏幕截图,并指明您想要获取的确切数据。请将您的数据库结构添加为屏幕截图,并指明您想要获取的确切数据。