【发布时间】:2016-10-04 08:28:48
【问题描述】:
我有这种情况,我们有一个用户 A 访问另一个用户 B 的个人资料,他点击了关注。一旦他关注了 userB,我们希望他写信给 Firebase 并添加到 userB 的关注者:{ userA: true }...查看规则我知道我们可以对用户进行身份验证,但是我们如何确保一旦他通过身份验证,他只能仅将他的 userId 写入 userB 的关注者 - 成为 userA 而不会篡改数据并可能写入 userC。
身份验证是否为我们提供了 userA,我们可以确保写入只能等于 userId 的 auth.userA 还是随机生成的,并且与我们通常用于用户的主要 userId 不同?
另外,如果 auth.userId 可以从他们的文档中访问,我们是否也可以调用 auth.username 来获取经过身份验证的用户名,以确保他们不会在用户名之外写一些东西?
这是数据结构的一个例子:
以下 用户名 用户身份 日期
我试图让用户只能将他们的 userId 和用户名写入关注。
Map<String, Object> payload = new HashMap<String, Object>();
payload.put("uid", "uniqueId1");
payload.put("some", "arbitrary");
payload.put("data", "here");
TokenGenerator tokenGenerator = new TokenGenerator("<YOUR_FIREBASE_SECRET>");
String token = tokenGenerator.createToken(payload);
必须是“数据”还是可以是“用户名”、“测试人员”?
【问题讨论】:
-
在下面回答。对于下一个问题:如果您在问题中包含的不仅仅是对数据结构的描述,您会发现获得答案的速度更快。例如:我们大多数人发现我在您的数据结构上的小图比对该数据结构的描述更快。
标签: firebase firebase-realtime-database firebase-authentication firebase-security