android - 实时数据库安全 [Android]
问题描述
我发现的所有文档都描述了在将数据库的隐私设置为公开时如何将数据读取和写入 Firebase 实时数据库,如下所示:
https://firebase.google.com/docs/database/android/read-and-write
当我的规则如下时,当我需要读取数据时,当我已经启动并运行身份验证以进行验证时,如何传递 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
此致
解决方案
只要用户成功通过身份验证,您就不需要传递任何内容。在调用实时数据库之前,请确保您已使用 Firebase 的身份验证 API 对用户进行身份验证。
推荐阅读
- c# - 将特定符号转换为 lat
- django - Django,同时删除一个对象并创建一个新对象(在新模型中)
- amazon-web-services - 无法 RDP 到 Amazon EC2 实例(Windows 服务器)
- node.js - 如何在我的 Express 生成器应用程序运行之前从 db 获取数据?
- java - 如何在Spring的循环中设置按钮值
- python - Python - 为多维列表赋值
- ruby-on-rails - 部署到 Heroku 的问题:缺少 'secret_key_base' 和未初始化的常量 Posts (NameError)
- amazon-web-services - 如何在没有 CLI 或脚本的情况下每 10 分钟删除对象中的 S3 文件?
- javascript - 输入值看不到完整,为什么?
- java - 为什么我会得到 java.lang.NullPointerException