首页 > 解决方案 > 如何根据登录的用户向 Firestore 添加一些数据,以及如何创建用户的个人资料?

问题描述

我正在使用颤振开发餐厅应用程序,我想使用 firestore 作为我的数据库,并且我已经在Andrea Bizzotto 的YouTube 身份验证教程的帮助下通过 firebase 进行了身份验证,但我无法理解任何教程或无法整合到登录/注册页面以在云 Firestore 中创建用户信息,有人可以给我一个方法来做到这一点,只需给出一个基本的介绍或方向来找到完成它的方法。提前致谢。

标签: firebasefluttergoogle-cloud-firestore

解决方案


在您使用 firebase auth 注册用户后,如果成功,您应该运行此方法来更新他的数据。

   Future<dynamic> updateUserData(FirebaseUser user, String photoUrl, String displayName) async {
        final Firestore _db = Firestore.instance;

        DocumentSnapshot snapshot =
            await _db.collection('users').document(user.uid).get();

        DocumentReference ref =  _db.collection('users').document(user.uid);

        if (snapshot.exists) {
          return ref;
        } else {
          return Firestore.instance.runTransaction((Transaction tx) async {
            return tx.set(
              ref,
              {
                'uid': user.uid,
                'email': user.email,
                'name': displayName,
                'photo': photoUrl,
                'lastSeen': DateTime.now()
              },
            );
          }).then((val) => val.length);
        }
      }

推荐阅读