我正在玩颤振,但我遇到了一个我无法弄清楚的 firestore 问题。
假设我想检索客户的购买者历史记录,并且我有一个如下所述的 Firestore,所以我有一个“用户”集合,其中包含一个user_id's文档,然后在其中,我有一个“产品”集合与包含的文档product_id“我的目的是收集产品的ID为选定的用户,然后检索从产品集合产品价格?
用户
产品
我遇到的问题是,虽然我可以从用户表中获取产品的 id,但我看不到如何使用这些数据的简单方法,就像使用 SQL 一样,我们将对 product_id 进行简单的连接获取 id 匹配的价格?
任何帮助将非常感激。
感谢您回复 Frank van Puffelen 2 单独查询接缝合理,但它带来了第二个查询的其他问题,就像现在使用下面的代码一样,我可以从用户那里获取文档 ID,然后对产品进行查询,一切看起来都不错,所以我认为我正朝着正确的方向前进,因为我可以在循环中打印文档的 id 以确保我正在访问正确的文档,但是当我更改它以获取文档的快照时,我无法访问其中的数据,这可能是我在做的一些愚蠢或误解的东西,但是在尝试获取和处理数据时,与 sql 相比,这感觉非常尴尬。例如,如果我返回它希望它采用未来形式的数据> 但是,一旦我以该格式返回数据,那么我就无法再以与之前相同的方式访问 ID。
Future<List<DocumentSnapshot>> getSeedID() async{
var data = await Firestore.instance.collection('users').document(widget.userId).collection('products').getDocuments();
var productList = data.documents;
print("Data length: ${productList.length}");
for(int i = 0; i < productList.length; i++){
var productId = Firestore.instance.collection('products').document(productList[i]['productId']).documentID;
if(productId != null) {
print("Data: " + productId);
}
}
return …Run Code Online (Sandbox Code Playgroud) 我有一个包含a listView和a 的父对象,floatingActionButton我想floatingActionButton在用户开始滚动时隐藏,我设法在父窗口小部件中做到这一点,但这需要每次重新构建列表。
我已经将其floatingActionButton移至单独的类,因此我可以更新状态并仅重建该小部件,因为我遇到的问题是将数据从ScrollController父类中的数据传递给孩子,这在通过导航进行操作时很简单,但是接缝却更多笨拙而不重建父母!