【发布时间】:2018-03-17 17:28:46
【问题描述】:
尝试实施,以便用户只能访问用户正在玩的游戏的游戏数据。 基本上,如果用户是玩家列表的一部分,用户应该能够阅读。我在所有 $GameID 中都有参与玩家的列表。 所有用户都有自己唯一的用户名,存储在用户 -> FirebaseID -> 用户名值下。
在模拟读取用户所在的 $GameID 中的孩子时,我可以获得以下工作,但当我在我的应用中尝试 lite 时,它不会授予用户访问权限。
应用内调用:
GamesDataDatabase = FirebaseDatabase.getInstance().getReference("Games");
GamesDataDatabase.limitToFirst(50).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
......
规则:
"Games": {
"$GameID": {
".read": "root.child('Games').child($GameID).child('metaData').child('players').child(root.child('Users').child(auth.uid).child('username').val()).exists()",
如果我用 root.child('Games').child($GameID) 替换 "data" 似乎没有任何区别
反复尝试,但似乎无法让这条规则发挥作用...... :(
【问题讨论】:
标签: android firebase-realtime-database firebase-security