如何在创建新用户时保持当前用户的完整性

时间:2020-09-15 16:31:37

标签: firebase flutter google-cloud-firestore

    FirebaseUser user = (await FirebaseAuth.instance.createUserWithEmailAndPassword(email: email, password: password)).user;
    await Firestore.instance.collection("users").add({
      'uid': user.uid,
      'email': email,
      'name': name,
      'phone': number,
      'TodaySale': "0",
      'MonthlySale': "0",
      'Permission': permission
    });
    Firestore.instance.collection("employees").add({
      'Name': name,
      'Address': address,
      'Permission': permission,
      'Phone': number,
      'Email': email,
    });

我已经登录该应用程序并尝试创建新员工,其数据存储在用户集合和员工集合中。 但是在执行代码后,当前用户将更改为添加的员工。在保持当前用户与登录时相同的同时如何创建用户。

1 个答案:

答案 0 :(得分:1)

doc中所述,createUserWithEmailAndPassword()方法是一个两步操作;它将首先创建一个新帐户(如果尚不存在并且密码有效),然后自动将用户登录到该帐户”。 使用从前端(即从Flutter应用程序)调用的方法无法避免自动登录。

您需要通过后端流程(例如通过Cloud Function)注册这些用户。

以下article说明了如何构建一个模块,该模块允许具有特定Admin角色的最终用户创建其他用户,并为他们分配其他特定的用户角色。简而言之:从前端,已登录的用户使用新的用户数据调用Callable Cloud Function。在后端,Cloud Function在Auth服务中创建用户(并像在Firestore.instance.collection("employees").add()中一样在Firestore中创建用户文档)。因此,前端中的当前用户未注销。