如何在Flutter和firebase身份验证方法中存储附加数据



早上好,我有一个简单的查询,我正在使用firebase身份验证作为我的flutter应用程序的登录/注册方法,如果我想存储其他数据,如姓名、年龄等,什么是正确的方法…

如果您查看User.dart中定义的class User,例如Flutter的Firebase SDK,您将看到User类的各种属性,包括但不限于:

  • String? get displayName
  • String? get email
  • bool get emailVerified
  • bool get isAnonymous
  • UserMetadata get metadata

您可能会看到metadata属性并认为Aha!也许我可以把额外的数据放在那里,但如果你看看这个类的属性和代码,你很快就会意识到它也不允许你在其中存储额外的属性。

因此,Firebase中的User不是存储该用户自身附加信息的合适位置!这就是我希望你从这个答案中得到的收获。

正确的方法是将每个用户的附加信息存储在Firestore数据库中。创建一个简单的集合,并将其命名为UserInfo和每个用户id,存储每个用户所需的附加信息,并向该集合中名为user-id的每个对象添加一个字段,并将user.id存储在该字段中。这样,您就可以始终按照user.id查找用户信息。

正如我所理解的,在登录后存储用户的额外数据的问题。为此,您可以使用Firestore数据库并为字段(如-name、age等(创建集合

https://pub.dev/packages/cloud_firestore看看这个图书馆。

https://medium.com/firebase-developers/cloud-firestore-basics-in-flutter-68c7ec42eeca

要了解消防商店,请阅读本文。

最新更新