android - 实时数据库 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
我觉得我做错了什么,但我看不到。
为了清楚起见,我正在编辑。
我有一个应用程序可以获取设备坐标并将其与我的数据库中的坐标进行比较,问题是设备能够获取此数据,它必须具有读取权限,问题是此坐标需要保密我已经读到任何人都可以对我的应用程序进行逆向工程并在不使用我的应用程序的情况下访问坐标。
我怎么能让这个坐标成为秘密?
解决方案
推荐阅读
- python - 功能 recv_exit_status 没有按预期工作
- python - 如何在 Python 中按间隔时间重置循环
- c# - 如何在 SQL 数据透视表中使用字符串类型列
- perl - 为 XS 函数伪造标准输入
- sql-server - 将多个 id 存储在一列中
- javascript - 如何在多个 Ajax 调用期间在服务器端保留数据
- php - 用 ACF 自定义字段替换 Woocommerce 分类归档页面标题
- android - 使用我的包名前缀为客户端发布 android 应用程序
- python - “ImportError:没有名为 PyQt4.QtCore 的模块”尽管 PyQt5 被导入
- docker - Docker for Windows 中的 Kubernetes