颤抖地在Firestore中的Auth User数据和集合之间建立连接

时间:2020-10-20 11:49:51

标签: flutter google-cloud-firestore firebase-authentication

我已经在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));
                }
              })

1 个答案:

答案 0 :(得分:1)

您共享的代码表明您有一个数据模型,其中将用户的任务存储在该用户文档下的子集合中。这是对此类数据进行建模的有效且常见的方法。

另一种选择是拥有一个全局任务列表,因此只有一个顶级tasks集合。在这种情况下,您需要在每个任务文档中存储拥有该任务的用户的UID。

这两个模型都是有效且通用的,并且两者都不比另一个更好。与NoSQL数据库一样,正确的模型取决于特定应用程序的用例,在发现/添加更多用例时,您可能不得不调整数据模型。