实时数据库Firebase规则

时间:2020-05-02 13:54:02

标签: android firebase firebase-realtime-database firebase-security

我有一个必须从数据库中获取数据的应用程序,它的某些坐标,这个坐标应该对所有人都保密,但是我已经读到任何使用我的数据库名称或反向启动我的应用程序的人都可以访问并获得一组坐标。 我一直在尝试诸如对坐标进行哈希处理之类的不同操作,问题是我需要在代码中使用这些坐标,如果对它们进行哈希处理,则无法使用它们。

对此有任何解决方法吗,或者我必须以其他方式处理它。

我还想在应用程序中添加数字货币,该人拥有的硬币数量存储在其用户密钥中,但是我需要提供读写权限,以便该应用程序可以更新他拥有的硬币数量

我已经尝试了很多事情,但我无法将其包裹住,我想念的是什么?

这是我的规则:

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid",
        ".read": "$uid === auth.uid",
          "usuario": {
            ".validate": "
              !root.child('usernames').child(newData.val()).exists() ||
              root.child('usernames').child(newData.val()).val() == $uid"
          },
        ".validate": "!root.child('users').child($uid).exists()"
      }
    },
    "usernames":{
        ".write":"true",
        ".read" : "true",
      }
  }
}

用户树具有以下结构:

$uid:
  email
  creation_date
  coins
  usuario

我觉得自己做错了什么,但我看不到。


为了清晰起见,我正在编辑。

我有一个应用程序,它获取设备坐标并将其与数据库中的坐标进行比较,问题是设备必须具有读取权限才能获取此数据,问题是此坐标需要是个秘密,我已经读到任何人都可以对我的应用程序进行逆向工程并无需使用我的应用程序即可访问坐标。

我怎样才能使这个坐标秘密?

0 个答案:

没有答案