首页 > 解决方案 > 实时数据库安全 [Android]

问题描述

我发现的所有文档都描述了在将数据库的隐私设置为公开时如何将数据读取和写入 Firebase 实时数据库,如下所示:

https://firebase.google.com/docs/database/android/read-and-write

Firebase 权限被拒绝错误

当我的规则如下时,当我需要读取数据时,当我已经启动并运行身份验证以进行验证时,如何传递 Firebase 用户:

 {
   "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
    }
 }

当我这样尝试时:

   reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String value = dataSnapshot.getValue(String.class);
            Log.d("VERBOSE: ", "Value is: " + value);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.e("ERROR: ", "Failed to read database.", databaseError.toException());
        }
    });

我总是得到例外

com.google.firebase.database.DatabaseException: Firebase Database error: Permission denied

此致

标签: androidfirebasefirebase-realtime-databasegoogle-signin

解决方案


只要用户成功通过身份验证,您就不需要传递任何内容。在调用实时数据库之前,请确保您已使用 Firebase 的身份验证 API 对用户进行身份验证。


推荐阅读