我有这个场景,我们有一个userA访问另一个userB的 Profiles ,他点击了关注 . 一旦他跟随userB,我们希望他写信给Firebase并添加到userB的粉丝:{userA:true} ...查看规则我明白我们可以验证用户,但是我们如何确认一旦他被认证他只能写入userB的关注者只有他的userId - 作为userA而不篡改数据并且可能编写userC .
身份验证是否为我们提供了userA,我们可以确保write只能等于userId的auth.userA,还是随机生成的,与我们一般用户使用的主userId不一样?
另外,如果可以从他们的文档访问auth.userId,我们还可以调用auth.username来获取经过身份验证的用户名,以确保他们不会在用户名之外写一些东西吗?
以下是数据结构的示例:
以下用户名userid日期
我试图让用户只能将他们的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);
它必须是“数据”还是“用户名”,“测试者”?
1 回答
所以听起来你想要这个结构:
并且您希望仅允许具有
follower_uid
的用户写入值 .这可以使用以下安全规则来完成 .
我建议你阅读Firebase documentation on security rules,它涵盖了这个以及更多场景 . 这是一个阅读,但值得花时间 .