【发布时间】:2019-09-29 22:25:35
【问题描述】:
基于 Firebase 规则的安全性不返回可读的节点
实时数据库由三个节点组成,productA、productB 和 productC 在根级别,我只想让节点 A 和 B 被读取,而不是在 C 级别。 Firebase 模拟器在这些级别产生正确的结果,当我尝试下面的代码时,它不会读取值
myDatabaseReference = FirebaseDatabase.getInstance().getReference("/"); // does not work
//myDatabaseReference = FirebaseDatabase.getInstance().getReference("/productA"); // does work
...
myDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> snapshotIterator = dataSnapshot.getChildren();
Iterator<DataSnapshot> iterator = snapshotIterator.iterator();
while ((iterator.hasNext())) {
Object node= iterator.next();
String NodeKey = ((DataSnapshot) node).getKey();
Object NodeValue = ((DataSnapshot) node).getValue();
// dosomething
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
ItemList.add(databaseError.getMessage());
}
});
在 getReference 中指定根节点时应触发 onDataChange
【问题讨论】:
标签: android firebase firebase-realtime-database firebase-security