Flutter Firestore - 查找 `Document Snapshot` id
Flutter Firestore - Find `Document Snapshot` id
我有一个带有产品列表的简单应用程序。产品存储在 Firebase Firestore 上。我想下载产品列表并让用户有可能更新一些数据。
所以我准备了产品清单:
Widget _buildProductsList() {
return new StreamBuilder(
stream: Firestore.instance
.collection('products')
.snapshots,
builder: (context, snapshot) {
if (!snapshot.hasData) return new Text("Loading...");
return new ListView(
children: snapshot.data.documents.map((document) {
Product product = new Product(document.data);
_ProductCell cell = new _ProductCell();
cell.product = product;
return cell;
}).toList(),
);
},
);
}
我将文档快照序列化到我的产品对象:
class Product {
static const NAME_KEY = 'name';
static const DESC_KEY = 'desc';
static const PHOTO_URL_KEY = 'photoUrl';
static const AUTHOR_ID_KEY = 'authorId';
static const CREATED_AT_KEY = 'createdAt';
String name;
String description;
String photoUrl;
String authorId;
int createdAt;
Product(Map<String, dynamic> json) {
name = json[NAME_KEY];
description = json[DESC_KEY];
photoUrl = json[PHOTO_URL_KEY];
authorId = json[AUTHOR_ID_KEY];
createdAt = json[createdAt];
}
}
现在,当用户与 ProductCell 进行一些交互时,我想更新与之链接的 Firestore 中的产品文档,但我没有 ID,因此无法创建正确的 Firestore 引用。
如何实现?
昨天我遇到了同样的错误,所以我已经就此提出了一个问题。你可以在这里跟踪它:https://github.com/flutter/flutter/issues/12471
目前 FireStore 插件还有一些问题。
您可以通过过滤插件来查看 Firebase 插件的所有问题:
https://github.com/flutter/flutter/labels/plugin%3A%20firebase
由于问题 #12471 已解决,您可以从文档对象中获取文档 ID。
print(document.documentID)
此语法已经更新,您现在可以从
获取它
print(document.id);
https://pub.dev/documentation/firebase/latest/firebase_firestore/DocumentSnapshot/id.html
我有一个带有产品列表的简单应用程序。产品存储在 Firebase Firestore 上。我想下载产品列表并让用户有可能更新一些数据。
所以我准备了产品清单:
Widget _buildProductsList() {
return new StreamBuilder(
stream: Firestore.instance
.collection('products')
.snapshots,
builder: (context, snapshot) {
if (!snapshot.hasData) return new Text("Loading...");
return new ListView(
children: snapshot.data.documents.map((document) {
Product product = new Product(document.data);
_ProductCell cell = new _ProductCell();
cell.product = product;
return cell;
}).toList(),
);
},
);
}
我将文档快照序列化到我的产品对象:
class Product {
static const NAME_KEY = 'name';
static const DESC_KEY = 'desc';
static const PHOTO_URL_KEY = 'photoUrl';
static const AUTHOR_ID_KEY = 'authorId';
static const CREATED_AT_KEY = 'createdAt';
String name;
String description;
String photoUrl;
String authorId;
int createdAt;
Product(Map<String, dynamic> json) {
name = json[NAME_KEY];
description = json[DESC_KEY];
photoUrl = json[PHOTO_URL_KEY];
authorId = json[AUTHOR_ID_KEY];
createdAt = json[createdAt];
}
}
现在,当用户与 ProductCell 进行一些交互时,我想更新与之链接的 Firestore 中的产品文档,但我没有 ID,因此无法创建正确的 Firestore 引用。
如何实现?
昨天我遇到了同样的错误,所以我已经就此提出了一个问题。你可以在这里跟踪它:https://github.com/flutter/flutter/issues/12471
目前 FireStore 插件还有一些问题。 您可以通过过滤插件来查看 Firebase 插件的所有问题: https://github.com/flutter/flutter/labels/plugin%3A%20firebase
由于问题 #12471 已解决,您可以从文档对象中获取文档 ID。
print(document.documentID)
此语法已经更新,您现在可以从
获取它print(document.id);
https://pub.dev/documentation/firebase/latest/firebase_firestore/DocumentSnapshot/id.html