答案 0 :(得分:1)
正如我在您的数据库模式中看到的那样,您的user_stories
属性是数组类型。这意味着,当您尝试获取该文档时,该属性以List
对象的形式得到,而不是作为数组。不幸的是,Firestore无法将该列表转换为自定义对象的列表,您必须自己做。因此,请尝试以下操作:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference sendStoriesRef = rootRef.collection("sendstories");
sendStoriesRef.document("kueIJcdQARzEKU7EVio9").get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
List<Map<String, Object>> list = (List<Map<String, Object>>) document.get("user_stories");
//Iterate through the list to get the desired values
}
}
}
});
现在只需简单地遍历列表即可获得所需的值。如果kueIJcdQARzEKU7EVio9
是用户的uid
,则只需使用此uid
更改该值:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();