我使用过flutter和firebase的phone Auth,我完成了登录并插入了用户信息(id
,phone
,displayName
),所有这些信息都存在于Auth中,而不需要在Firestore中创建一个集合。
现在我在Firestore中创建了一个任务集合,因此每个用户都应该有很多任务。
如何在身份验证中的用户和Firestore中的任务集合之间建立连接?
我可以在不创建用户集合和使用来自auth的用户的情况下创建它吗?
onPressed: () {
if(taskTitleInputController.text.isNotEmpty && taskDescripInputController.text.isNotEmpty) {
Firestore.instance.collection("users").document(widget.uid).collection("tasks")
.add({
'title' : taskTitleInputController.text,
'desc' : taskDescripInputController.text
).then((result)=>Navigator.pop(context));
}
})
1条答案
按热度按时间k4emjkb11#
您共享的代码表明您有一个数据模型,在该模型中,您将用户的任务存储在该用户文档下的子集合中。这是对此类数据建模的有效且常用的方法。
另一种方法是使用一个全局任务列表,即一个顶级
tasks
集合。在这种情况下,您需要在每个任务文档中存储拥有该任务的用户的UID。这两种模型都是有效的和通用的,没有一个比另一个更好。与NoSQL数据库一样,正确的模型取决于您特定应用的用例,并且您可能必须在发现/添加更多用例时调整数据模型。