Firebase 如何通过引用在firestore中搜索文档

Firebase 如何通过引用在firestore中搜索文档,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我有两个收藏,一个是普通收藏,另一个是第一个收藏的文档参考,我想做的是通过它的参考给我具体的文档, 我通过在循环中搜索来找到特定的文档,但是有没有更好的方法来做到这一点,不必从第一个集合中获取所有文档,只需获取我需要的唯一文档 static Future<List<author_model>> getTHEauthor(DocumentReference documentReference) async{ String ref = documentReferenc

我有两个收藏,一个是普通收藏,另一个是第一个收藏的文档参考,我想做的是通过它的参考给我具体的文档, 我通过在循环中搜索来找到特定的文档,但是有没有更好的方法来做到这一点,不必从第一个集合中获取所有文档,只需获取我需要的唯一文档

static Future<List<author_model>> getTHEauthor(DocumentReference documentReference) async{
    String ref = documentReference.documentID;
    DocumentReference dReference = articleCollection.document(documentReference.documentID);
    List<author_model> author=[];
    author_model model ;
    final QuerySnapshot querySnapshot = await authors.getDocuments();
    List<DocumentSnapshot> result = querySnapshot.documents;

    for(int i=0 ; i<result.length ; i++) {
      if (result[i].documentID == ref) {
          model = new author_model(
           result[i]['author_name'], result[i]['author_image'],
           result[i]['author_work_exeperience']
           , result[i]['autor_education']);
           author.add(model);
         break;
      }
    }
    // print(author.length);
    return author;
  }
也尝试了这个查询

 final QuerySnapshot querySnapshot = await authors.where('documentID', isEqualTo: 
  ref).getDocuments();
但是没有结果,我不知道如何得到只有具体参考的文件。 我不想得到作者收藏中的所有文档


有谁能帮我查询和获取特定文档的信息吗?

我建议您看看这里已经回答的问题:

这似乎与您的案例非常相关,解决方案肯定会对您有所帮助。:)


让我知道,如果链接帮助你

我建议您看看这里已经回答的问题:

这似乎与您的案例非常相关,解决方案肯定会对您有所帮助。:)


让我知道,如果链接帮助你

我使用了这个代码,我使用了stream builder@gso_gabriel

Stream authorStream ;



@override
void initState() {
authorStream=Firestore.instance.collection('doctors_authors').document(_article.author_reference.documentID).snapshots();
super.initState(); }



  child: StreamBuilder(
       stream: authorStream,
      builder: (context, snapshot) {
       if (snapshot.hasData) {
        return Column(
          children: <Widget>[
            SizedBox(height: 30,),
            GestureDetector(
              child: CircleAvatar(
                radius: 50,
                backgroundImage: NetworkImage(snapshot.data['author_image'].toString()),),
streamauthorstream;
@凌驾
void initState(){
authorStream=Firestore.instance.collection('doctors_authors').document(_article.author_reference.documentID).snapshots();
super.initState();}
孩子:StreamBuilder(
流:authorStream,
生成器:(上下文,快照){
if(snapshot.hasData){
返回列(
儿童:[
尺寸箱(高度:30,),
手势检测器(
孩子:圆环星(
半径:50,
backgroundImage:NetworkImage(snapshot.data['author\u image'].toString(),),

我使用了这个代码,我使用了stream builder@gso\u gabriel

Stream authorStream ;



@override
void initState() {
authorStream=Firestore.instance.collection('doctors_authors').document(_article.author_reference.documentID).snapshots();
super.initState(); }



  child: StreamBuilder(
       stream: authorStream,
      builder: (context, snapshot) {
       if (snapshot.hasData) {
        return Column(
          children: <Widget>[
            SizedBox(height: 30,),
            GestureDetector(
              child: CircleAvatar(
                radius: 50,
                backgroundImage: NetworkImage(snapshot.data['author_image'].toString()),),
streamauthorstream;
@凌驾
void initState(){
authorStream=Firestore.instance.collection('doctors_authors').document(_article.author_reference.documentID).snapshots();
super.initState();}
孩子:StreamBuilder(
流:authorStream,
生成器:(上下文,快照){
if(snapshot.hasData){
返回列(
儿童:[
尺寸箱(高度:30,),
手势检测器(
孩子:圆环星(
半径:50,
backgroundImage:NetworkImage(snapshot.data['author\u image'].toString(),),

我找到了解决方案。@gso\u Gabriel谢谢你的帮助和回复。@gso\u Gabriel谢谢你的帮助和回复