Firestore:如何添加文档和子集合文档
Firestore: how do I add a document and a subcollection document
在 Flutter Firestore 中,我这样做是为了添加一个文档:
Firestore.instance
.collection('groups').add({'name': 'Group Name 1'});
但是我如何添加文档并在子集合中添加文档,我需要这样的东西:
Firestore.instance
.collection('groups').add({'name': 'Group Name 1'})
.collection('members').add({'name': 'newMemberName', 'isAdmin': true});
(在这种情况下,我希望创建群组的用户是第一个成员,同时也是管理员)
第一个 add
returns 解析为新文档的文档引用的 "future"。您可以通过 "await"-ing 来使用该值...
var docRef = await Firestore.instance.collection('groups').add({'name': 'Group Name 1'});
docRef.collection('members').add({'name': 'newMemberName', 'isAdmin': true});
编辑
要处理单个 http 请求,您可以尝试写入批处理。
保罗编辑:
// Add new group to database
var batch = Firestore.instance.batch();
// Create the group
var newGroup = Firestore.instance.collection('groups').document();
batch.setData(newGroup, {'name': value});
// Create the new members subcollection
var newMember = newGroup.collection('members').document();
batch.setData(newMember, {
'users_documentId': currentUser.documentId,
'users_displayName': currentUser.displayName,
'isAdmin': true
});
// Commit the batch edits
batch.commit().catchError((err) {
print(err);
});
在 Flutter Firestore 中,我这样做是为了添加一个文档:
Firestore.instance
.collection('groups').add({'name': 'Group Name 1'});
但是我如何添加文档并在子集合中添加文档,我需要这样的东西:
Firestore.instance
.collection('groups').add({'name': 'Group Name 1'})
.collection('members').add({'name': 'newMemberName', 'isAdmin': true});
(在这种情况下,我希望创建群组的用户是第一个成员,同时也是管理员)
第一个 add
returns 解析为新文档的文档引用的 "future"。您可以通过 "await"-ing 来使用该值...
var docRef = await Firestore.instance.collection('groups').add({'name': 'Group Name 1'});
docRef.collection('members').add({'name': 'newMemberName', 'isAdmin': true});
编辑
要处理单个 http 请求,您可以尝试写入批处理。
保罗编辑:
// Add new group to database
var batch = Firestore.instance.batch();
// Create the group
var newGroup = Firestore.instance.collection('groups').document();
batch.setData(newGroup, {'name': value});
// Create the new members subcollection
var newMember = newGroup.collection('members').document();
batch.setData(newMember, {
'users_documentId': currentUser.documentId,
'users_displayName': currentUser.displayName,
'isAdmin': true
});
// Commit the batch edits
batch.commit().catchError((err) {
print(err);
});