我的 Firestore 数据库具有以下结构:
products:{ // Collection
procuct_1: { // Document
title:"",
url:""
videos:{ // Collection
video_1:{ // Document
title:"",
products:{ // Array of references
0: "/products/product_1,
1: "/products/product_2
我希望能够从数组字段中视频集锦获取文档参考产品集合为了获取该集合的某些字段的值(例如产品标题)。
目前我使用这段代码:
FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
firebaseFirestore
.collection("videos")
.get()
.addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot documentSnapshot = task.getResult();
Map<String, Object> map = documentSnapshot.getData();
for (Map.Entry<String, Object> entry: map.entrySet()){
if (entry.getKey().equals("products")){
textView.setText(entry.getValue().toString());
}
}
但是entry.getValue().toString()返回给我这样的数组:
[com.google.firebase.firestore.DocumentReference@451d5ae8,
com.google.firebase.firestore.DocumentReference@e28cd0c]
有什么建议我可以从这个数组中获取产品集合的任何字段吗?
要解决此问题,请使用以下代码:
firebaseFirestore.collection("videos")
.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (DocumentSnapshot document : task.getResult()) {
List<String> products = (List<String>) document.get("products");
for (String product : products) {
Log.d("TAG", product);
}
}
}
});
输出将是:
/products/product_1
/products/product_2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)