Asynchronous 弗利特:我能';无法从firestore集合获取文档。。。为什么?

Asynchronous 弗利特:我能';无法从firestore集合获取文档。。。为什么?,asynchronous,flutter,google-cloud-firestore,Asynchronous,Flutter,Google Cloud Firestore,我真的无法理解这一点。。。请帮忙 我有一个很棒的应用程序,可以扫描二维码并返回字符串(条形码)。现在我想使用该字符串作为输入来创建firestore enquery。这是我的密码 Future barcodeScanning() async { try { String barcode = await BarcodeScanner.scan(); getData(barcode); } catch (e) { setStat

我真的无法理解这一点。。。请帮忙

我有一个很棒的应用程序,可以扫描二维码并返回字符串(
条形码
)。现在我想使用该字符串作为输入来创建firestore enquery。这是我的密码

Future barcodeScanning() async {
      try {
        String barcode = await BarcodeScanner.scan();
        getData(barcode);
      } catch (e) {
        setState(() => barcodeFinal = 'Unknown error: $e');
      }
    }

void getData(String zz) {

      DocumentReference documentReference = Firestore.instance.collection('books').document(zz);
      documentReference.get().then((datasnapshot) {
        if (datasnapshot.exists) {
          print(datasnapshot.data['name'].toString());
        } else {
          print("No such book");
        }
      });
这不起作用,我总是以“没有这样的书”结尾,即使文档存在于firestore集合中。有趣的是,如果我写
getData('thenameofdocument')然后它就工作了。我相信异步和处理将来的值肯定有问题,但我可以找出

这是数据库结构

请附上数据库结构的屏幕截图,因为您可能需要运行“where()”查询以获取信息。谢谢,我会的,但是我只想得到一个文档,我知道文档ID。我不是在查询集合。我只想得到一份文件,二维码zz和DocumendID会有所不同。books->DocumendID->Document()在我的示例中,二维码zz实际上就是documentID。a把文件参考弄错了吗?要获取文档,我需要.collection('collectionName').document('documentID'),对吗?如果您能显示Firestore结构,我可以告诉您更多信息,您是如何存储值的