【问题标题】:Store user data with only Firebase Firestore without auth?仅使用没有身份验证的 Firebase Firestore 存储用户数据?
【发布时间】:2021-09-15 07:45:22
【问题描述】:
我想将我的游戏链接到存储用户名和高分的数据库,以创建排行榜。我看过的很多教程都使用 Firebase 身份验证,但我只想存储用户名而不需要任何电子邮件注册。是否可以仅使用 Firebase Firestore 来存储用户数据?如果有任何我可以使用的指南也会很有帮助。
【问题讨论】:
标签:
android
firebase
google-cloud-platform
google-cloud-firestore
firebase-authentication
【解决方案1】:
是的,您可以这样做。您还需要实现SharedPreference。 SharedPreference 将使用 as 检查用户是否已经登录。
假设你的 json 看起来像这样:
-user
-userUid
-username = USERNAME
-psw = PSW
-otherData = ...
-userUid
-username = USERNAME2
-psw = PSW2
-otherData = ...
如果username 和psw 正确,您可以从这里开始循环并比较它们中的每一个。完成后,退出循环并使其成为登录状态。
【解决方案2】:
我看过的很多教程都使用 Firebase 身份验证
您观看的教程使用Firebase Authentication,因为它提供了一个非常有用的功能,即使用Cloud Firestore Security 保护数据库。这些规则在服务器上强制执行,因此恶意用户无法绕过。
是否可以只使用 Firebase Firestore 来存储用户数据?
是的,是的。如果您对保护数据库不感兴趣,可以创建如下所示的结构:
Firestore-root
|
--- users (collection)
|
--- $username (document)
|
--- age: 20
|
--- gender: male
使用用户名作为文档 ID 将确保您没有重复,因为在一个集合中您不能有两个具有相同 ID 的文档。
如果您重新考虑使用安全规则的方法,请先查看以下文章: