我在测试期间为PUBLIC访问配置了firebase数据库,运行正常。现在我想更改设置,以便只允许应用用户访问。但是现在我从应用程序访问时得到了读/写权限错误。是否有任何更新需要包含在访问数据库的代码中?
firebase规则中的更改:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
访问数据库的代码片段:
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(DBReference);
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
答案 0 :(得分:1)
是的,您必须先使用Firebase Authentication对用户进行身份验证,然后才能对数据库进行任何查询。如果没有有效的令牌,查询将立即失败,并且不会自动重试。
实际上,在应用程序启动时使用AuthStateListener
至关重要。早点开始,等待它返回当前状态:如果有用户,则可以开始使用数据库;如果没有,则需要例如登录屏幕。