【问题标题】:flutter/cloud firestore : How to get only one data from doc?flutter/cloud firestore:如何从文档中只获取一个数据?
【发布时间】:2021-05-27 15:48:38
【问题描述】:

我使用带有 Flutter 的 Cloud Firestore,我成功地从文档中获取了所有键/值,但我没有成功匹配文档中的一个 id

这是我的代码:

 getgift() async {

    final firestoreInstance = FirebaseFirestore.instance;


    // Get docs from collection reference
    QuerySnapshot querySnapshot = await  firestoreInstance.collection("parrainage").get();

    // Get data from docs and convert map to List
    final mydata= querySnapshot.docs.map((doc) => doc.data()).toString();

    print("$mydata");

我当前的输出是({key1: value1}, {key2: value2})

对于这个例子,我尝试只匹配来自 key1 的数据。

谢谢 }

【问题讨论】:

    标签: flutter google-cloud-firestore


    【解决方案1】:

    以下代码将返回一个DocumentSnapshot 对象。

    DocumentSnapshot snapshot = await firestoreInstance.collection("parrainage").doc("key1").get();
    

    您可以通过执行以下操作来访问其值:

    dynamic x = snapshot.data(); // will return value1
    

    【讨论】:

    • 感谢您的快速回复,只是对红色突出显示的 data() 有问题。错误:没有为“函数”类型定义方法“数据”
    • 进行了必要的更改。请检查。
    • 对不起,我不明白,我用你的代码改变了,但我不能使用,因为 .data()
    • 那是因为 .data() 返回的是 Map,而不是值。如果您使用.data()[key1].get[key1],它将给出值,如我的回答中所述
    【解决方案2】:

    如果我理解正确,你只想得到value1。如果是这样,那么只需这样做:

    final mydata= querySnapshot.docs.firstWhere((element) => element.data().containsKey(key1));
    

    或者,如果您只想获取键为 key1 的数据(而不是获取所有键和值),请执行以下操作:

    QuerySnapshot querySnapshot = await  firestoreInstance.collection("parrainage").doc(key1).get();
    final mydata= querySnapshot.get(key1);
    

    干杯

    【讨论】:

    • 在这个例子中,我有错误找不到 providerinstaller 的本地模块描述符类。 I/DynamiteModule(1570):考虑本地模块 providerinstaller:0 和远程模块 providerinstaller:0 W/ProviderInstaller(1570):无法加载 providerinstaller 模块:找不到可接受的模块。本地版本为 0,远程版本为 0。 I/flutter (1570): 1 E/flutter (1570): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:错误状态:没有元素 E /flutter (1570): #0 ListMixin.firstWhere
    • 哇?该错误甚至似乎与代码无关...
    猜你喜欢
    • 2020-05-11
    • 2020-09-05
    • 2021-07-06
    • 2022-06-24
    • 2019-11-27
    • 2020-12-05
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    相关资源
    最近更新 更多