如何在FireStore中查询存储在对象类型中的引用类型数据?

时间:2018-03-09 07:43:17

标签: android firebase google-cloud-firestore

enter image description here

如果您可以查看下面的图片,我可以在testRef节点中查询数据引用。但是,如果我能够在coRef节点中查询数据,如

documentSnapShot.getDocumentReference(" COREF / DxFXp3TGc8X8UciPSeqO&#34)

我得到例外:

无效的字段路径(coRef / DxFXp3TGc8X8UciPSeqO)。路径不得包含'〜',' *',' /',' ['或'] '

不工作代码:

 documentSnapshot.getDocumentReference("coRef/"+entry.getKey()).get()
                            .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                            if(task.isSuccessful()){
                                DocumentSnapshot documentSnapshot1 = task.getResult();
                                Log.v("Rajesh","Result"+documentSnapshot1.getData());
                            }
                        }
                    });

工作代码:

documentSnapshot.getDocumentReference("testRef")
                            .get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                            if(task.isSuccessful()){
                                DocumentSnapshot documentSnapshot1 = task.getResult();
                                Log.v("Rajesh","Result"+documentSnapshot1.getData());
                            }
                        }
                    });

1 个答案:

答案 0 :(得分:2)

错误消息告诉您确切的错误:

  

无效的字段路径(coRef / DxFXp3TGc8X8UciPSeqO)。路径不得包含&#39;〜&#39;,&#39; *&#39;,&#39; /&#39;,&#39; [&#39;或&#39;] &#39;

您的路径中包含/字符,您可以从代码行中看到:

documentSnapShot.getDocumentReference("coRef/DxFXp3TGc8X8UciPSeqO")

(其中包含无效的/。)

如果要引用文档中对象的属性,请尝试使用以下内容:

documentSnapShot.getDocumentReference("coRef.DxFXp3TGc8X8UciPSeqO")

或者

documentSnapShot.get(FieldPath.of("coRef", "DxFXp3TGc8X8UciPSeqO"))