如何在firestore中获取setData的ID?
Posted
技术标签:
【中文标题】如何在firestore中获取setData的ID?【英文标题】:How to get the Id of of setData in firestore? 【发布时间】:2018-12-29 19:29:45 【问题描述】:我正在编写一个颤振应用程序,其中我在 firebase 中设置了一个文档实例,如下所示:
await _firestoreInstance.collection("groups").document().setData(
'group_name': groupName,
'class_name': className,
'location': groupLocation,
'time': groupTime,
'date': groupDate,
'number_in_group': 1
,);
然后我想把上面的文档id做这样的事情:
_firestoreInstance.collection("colleges").document(collegeStudent.collegeId).collection('activeGroups').document().setData('group_id':*above document id goes here*); //above document id is the id of the document created by the first query
所以我的问题是有没有一种方法可以获取第一个文档的 id 并将其用作第二个查询的参考?
【问题讨论】:
【参考方案1】:为了简化document().setData(data)
,我在我的解决方案中使用了add(data)
,它的作用完全相同,并从document()
返回DocumentReference
。
// insert your data ( 'group_name'...) instead of `data` here
final DocumentReference documentReference =
await _firestoreInstance.collection("groups").add(data);
final String groupID = documentReference.documentID;
// groupID contains the documentID you were asking for
// here I am just inserting it into your example code from the question
_firestoreInstance.collection("colleges").document(collegeStudent.collegeId)
.collection('activeGroups')
.add('group_id': groupID); // using add instead of `document().setData` here as well
如您所见,我正在使用返回的 DocumentReference
(如上所述)并使用 documentID
getter 从您新创建的文档中提取 ID。
【讨论】:
【参考方案2】:使用以下代码执行setData
,并从groups
获取ID。
var groups = _firestoreInstance.collection("groups");
await groups.document().setData(
'group_name': groupName,
'class_name': className,
'location': groupLocation,
'time': groupTime,
'date': groupDate,
'number_in_group': 1
);
groups.documentID
【讨论】:
以上是关于如何在firestore中获取setData的ID?的主要内容,如果未能解决你的问题,请参考以下文章
Firestore - 如何在将文档添加到集合后获取文档 ID
如何在 swift iOS Firestore 中获取单元格文档 ID?
如何在快速点击 Firestore 中的 uitablecellviewcell 时获取文档 ID