适用于所有应用用户的Android firebase访问权限

时间:2016-11-20 02:07:18

标签: android firebase firebase-realtime-database

我在测试期间为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) {

1 个答案:

答案 0 :(得分:1)

是的,您必须先使用Firebase Authentication对用户进行身份验证,然后才能对数据库进行任何查询。如果没有有效的令牌,查询将立即失败,并且不会自动重试。

实际上,在应用程序启动时使用AuthStateListener至关重要。早点开始,等待它返回当前状态:如果有用户,则可以开始使用数据库;如果没有,则需要例如登录屏幕。