我已经在flutter和firebase上使用了电话Auth,并且完成了登录并插入了仅是(id,phone,dispalyName)的用户信息,并且所有这些信息都存在于Auth中,而无需在firestore中创建集合,但是现在,我在Firestore中创建了一个任务集合,因此,每个用户都应该有许多任务,现在如何在Authentication中的(用户)和Firestore中的(任务)之间建立连接? 因为例如我需要以这种方式添加数据:但是这里有集合吗?可以使用Auth中的(User)创建用户集合和jsut,而无需创建用户集合?或不?非常感谢您:
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));
}
})
答案 0 :(得分:1)
您共享的代码表明您有一个数据模型,其中将用户的任务存储在该用户文档下的子集合中。这是对此类数据进行建模的有效且常见的方法。
另一种选择是拥有一个全局任务列表,因此只有一个顶级tasks
集合。在这种情况下,您需要在每个任务文档中存储拥有该任务的用户的UID。
这两个模型都是有效且通用的,并且两者都不比另一个更好。与NoSQL数据库一样,正确的模型取决于特定应用程序的用例,在发现/添加更多用例时,您可能不得不调整数据模型。