【发布时间】:2020-12-24 07:37:42
【问题描述】:
我们遇到了可能是 firebase 数据库中的一个主要错误,请参阅下面的代码。下面的代码尝试为没有读取或写入权限的子“EXAMPLE”设置一个值。写入操作没有向数据库写入任何内容,并在日志中抛出错误“setValue at /EXAMPLE/VALUE failed: DatabaseError: Permission denied”,这是一件好事。
然而,一个主要问题是随后的代码尝试读取子“EXAMPLE”的值,该代码实际上进入 ondatachange 方法并将值读取为“ONE”,而不是进入 onCancelled 方法抛出权限错误,数据库中甚至不存在数据,并且子“EXAMPLE”没有读取或写入权限,所以fireabase如何声称读取甚至不存在的值。
myReftwo.child("EXAMPLE").child("VALUE").setValue("ONE");
myReftwo.child("EXAMPLE").child("VALUE").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
Log.d("print", dataSnapshot.getValue().toString() );
}
@Override
public void onCancelled(DatabaseError databaseError)
{
Log.d("print", databaseError.getMessage() );
}
});
【问题讨论】:
标签: android firebase firebase-realtime-database