android - 如何确保用户只能在 firebase 中查看和访问自己的数据?

标签 android firebase firebase-security firebase-authentication

我是 Firebase 的新手。在我的 Android 应用程序中,我希望每个用户只能访问他创建的数据。我在读https://www.firebase.com/docs/security/guide/securing-data.html ,但没有多大意义。假设我已经使用电子邮件和密码登录,

  1. 我应该如何编写 Firebase 规则?
  2. 如何在我的 Android Java 代码中写入我的 Firebase 数据?

谢谢!

Firebase 规则

{
    "rules": {
        ".read": true,
        ".write": true
    }
}

Java代码

myFirebaseRef.child("message").setValue("This is the message");

最佳答案

多亏了 Joey Rosing,我才能够弄清楚其余部分。我需要根据用户的 uid 对数据进行分组。

首先,按照 Joey 提到的修改 Firstbase 规则:

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid",
        ".read": "$uid === auth.uid"
      }
    }
  }
}

然后,在我的 Java 代码中:

Firebase rootRef = new Firebase("https://user-account.firebaseio.com/");
// Assuming the user is already logged in.
Firebase userRef = rootRef.child("users/" + rootRef.getAuth().getUid());
userRef.child("message1").setValue("Hello World");

最后,我的数据看起来像这样:

Firebase Data

关于android - 如何确保用户只能在 firebase 中查看和访问自己的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35820836/

相关文章:

android - R 无法解析为变量

ios - 无法使用带有电子邮件/密码的 Firebase 简单登录来执行完成 block

java - 在文件上传期间显示带有百分比的水平进度条的最佳方式?

java - 当我更改 int 值时,字符串中的 Int 不会更改

java - Android Studio) list 合并失败

swift - void 函数中意外的非 void 返回值 - Swift

ios - Firebase 安全规则 - Auth 生成的 UID 是否应该保密?

firebase - 如何修改 FirebaseSimpleLogin 管理的用户属性?

android - sencha touch 2 和 Phonegap 之间的混淆

firebase - 为什么以编程方式创建的动态链接未在 Firebase 控制台的 "Dynamic Links"中列出?