首页 > 解决方案 > 实时数据库 Firebase 规则

问题描述

我有一个必须从数据库中获取数据的应用程序,它的一些坐标,问题是这个坐标对每个人都应该保密,但我已经读到任何拥有我的数据库名称或通过反向工程我的应用程序的人都可以访问它并且得到一组坐标。我一直在尝试不同的东西,比如散列坐标,问题是我需要在代码中使用这些坐标,如果它们被散列,我就无法使用它们。

是否有任何解决方法,或者我必须以不同的方式处理它。

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

我已经尝试了很多东西,但我无法理解它,我错过了什么?

这是我的规则:

{
  "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

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


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

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

我怎么能让这个坐标成为秘密?

标签: androidfirebasefirebase-realtime-databasefirebase-security

解决方案


推荐阅读