제품 목록이있는 간단한 응용 프로그램입니다. 제품은 Firebase Firestore에 저장됩니다. 제품 목록을 다운로드하고 사용자에게 일부 데이터를 업데이트 할 수있는 권한을 부여하고 싶습니다.Flutter Firestore - 문서 스냅 샷 찾기 id
그래서 제품 목록을 준비 :
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 참조를 만들 수 없습니다.
어떻게해야합니까?