我刚刚开始使用Firebase,正在尝试在我的应用中实现Cloud Firestore和身份验证。让我解释一下上下文:我的Web应用程序将在LMS(学习管理系统(中实现,如Moodle和Docebo,并将符合SCORM。从本质上讲,这将是一个具有一些不错的互动功能的培训课程。该应用程序将是无服务器的(或者更好的是,它将与驻留在我客户端服务器上的LMS后端进行交互(,通过Firestore传递和接收数据。
我想我已经为这个项目设置了所有内容,但我无法绕过身份验证系统。基本上,身份验证将在 LMS 级别进行:用户将注册并登录到 LMS,然后开始使用我的应用程序。我可以从 LMS 中提取数据,例如用户名和她的唯一 ID。
因此,我不需要使用Firebase Auth系统(邮件和密码(进行双重身份验证,用户在进入我的应用时已经登录。但是,我仍然需要Firebase提供的身份验证功能,例如数据库的控制规则,并且还需要为所有用户保留一个数据库,其中包含用户名,ID,电子邮件和一些其他字段。
我该如何解决这个问题?我需要使用电子邮件和密码登录方法,但不需要输入有效的电子邮件/密码。只是我可以从 LMS 检索的 ID/令牌。
一旦你调用 signInWithEmailAndPassword...首次运行代码时,用户将自动登录。如果您的应用未卸载,用户将保持身份验证状态,直到您调用 firebase.logout 函数。
当您第一次成功调用登录电子邮件和密码时,您可以获取当前用户 ID
FirebaseAuth.getInstance().getCurrentUser().getUid
然后使用用户 ID。您可以在 firestore 的 USERS 集合中创建与用户 ID 相同的键的文档。
然后在文档中,您可以保存用户的数据。