【发布时间】:2019-04-12 13:23:53
【问题描述】:
我正在尝试从 firebase 的 DocumentSnapshot 中获取数据。
Firestore.instance.collection('products').document("Lucius_Malfoys_Zauberstab").get().then((DocumentSnapshot ds) {
print(ds.exists);
});
这个方法工作得很好并且返回true,但是:
var keys = ["Lucius_Malfoys_Zauberstab"];
String id = keys[0];
print(id); ---> prints Lucius_Malfoys_Zauberstab
Firestore.instance.collection('products').document(id).get().then((DocumentSnapshot ds) {
print(ds.exists);
});
返回假...
有谁知道,为什么会这样? 这只是我的应用程序中的一个小问题,但我很好奇为什么会发生这种情况。只是为了理解。谢谢!
编辑:
这是购物车集合的截图:
这是产品集合的截图:
【问题讨论】:
-
我们无法知道
data.documents.forEach((DocumentSnapshot doc) {是什么,所以很难说出了什么问题。您能否使用硬编码的 ID 列表重现该问题,如果可以,请更新您问题中的代码? -
我添加了我的 Firebase 的两个屏幕截图。这对您有用还是我应该对列表进行硬编码?顺便提一句。我不认为这个问题与
data.documents.forEach((DocumentSnapshot doc) {部分有关。 -
如果问题与循环无关,请在没有循环的情况下重现它并更新问题。如果问题与循环有关,请确保我们可以仅使用您提供的代码重现问题。为此,每次使用硬编码值都胜过任何动态。见how to create a minimal, complete, verifiable example。
-
好的,我更新了我的问题并删除了不必要的代码:)
标签: firebase dart flutter google-cloud-firestore