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,
});
我已经登录该应用程序并尝试创建新员工,其数据存储在用户集合和员工集合中。 但是在执行代码后,当前用户将更改为添加的员工。在保持当前用户与登录时相同的同时如何创建用户。
答案 0 :(得分:1)
如doc中所述,createUserWithEmailAndPassword()
方法是一个两步操作;它将首先创建一个新帐户(如果尚不存在并且密码有效),然后自动将用户登录到该帐户”。 使用从前端(即从Flutter应用程序)调用的方法无法避免自动登录。
您需要通过后端流程(例如通过Cloud Function)注册这些用户。
以下article说明了如何构建一个模块,该模块允许具有特定Admin角色的最终用户创建其他用户,并为他们分配其他特定的用户角色。简而言之:从前端,已登录的用户使用新的用户数据调用Callable Cloud Function。在后端,Cloud Function在Auth服务中创建用户(并像在Firestore.instance.collection("employees").add()
中一样在Firestore中创建用户文档)。因此,前端中的当前用户未注销。