【发布时间】:2020-07-12 22:20:24
【问题描述】:
在我的数据库和我的安全规则中有一个名为“设置”的表,非授权用户只能访问其中的两个孩子。
"Settings":{
".read": "auth != null",
".write": "root.child('Users').child(auth.uid).child('rank').val() == 3",
"$id":{
".read": "$id == 'maintenance' || $id == 'welcomeList'"
}
},
但这样我无法使用如下查询获取设置:
settingsRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
settings = dataSnapshot.getValue(Settings.class));
}
});
我必须查询两次才能得到我想要的。有没有其他方法可以做到这一点?因为我将来需要两个以上的孩子,我不想最终有 5 个不同的查询。
settingsRef.child("maintenance").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
settings.setMaintenance(dataSnapshot.getValue(Integer.class));
}
});
settingsRef.child("welcomeList").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
settings.setWelcomeList(dataSnapshot.getValue());
}
});
【问题讨论】:
标签: java android firebase firebase-realtime-database firebase-security