firebase - Firebase DB 无法更新,只能在调试模式下工作
问题描述
我有一个 react-native 应用程序,它可以确定用户是否允许 Firebase 云消息传递,然后保存用户令牌。它还大约在同一时间保存用户 GeoLocation。
如果在我的模拟器上启用了调试模式,这些功能都可以正常工作。但是,如果调试模式未运行,我会收到权限被拒绝警告。有谁知道为什么这只适用于调试模式?
geoFire.set(uid, [userLocation.lat, userLocation.lng]);
上面的代码应该保存位置。(这适用于启用调试模式)。
const firebaseConfig = {
apiKey: 'AIzaSyAZxxxxxxx',
authDomain: 'thxxxxxx',
databaseURL: 'https://thxxxxxxx',
storageBucket: 'thxxxxxxxxxxxxx',
}
// Initialize Firebase
const Firebase = firebase.initializeApp(firebaseConfig)
我使用具有以下访问规则的实时数据库
{
"rules": {
".read": "auth.uid != null",
".write": "auth.uid != null"
}
}
我发现很多用户收到此警告消息/问题是因为数据库的权限不正确。但是,我使用 Firebase 手册仔细检查了这些内容,它们应该像这样工作(在 firebase 控制台的 Rules Playground 中进行了测试。
解决方案
Permission denied 错误意味着安全规则拒绝了查询。如果您的应用程序的唯一规则是此处显示的内容,则表示在查询时没有用户登录应用程序。
推荐阅读
- mysql - 尽管有索引,但 sql 查询速度很慢
- c++ - C++:在for循环中使用索引作为模板参数
- python - 仅向前遍历有序字典
- python - 如何解决此 Psycopg 错误消息(python)
- .net - 如何在 Windows 窗体设计器中正确创建对齐的标签字段对?
- blueprism - 在 Blue Prism 中过滤 Excel 数据透视表字段
- python - 为什么不能使用 python 库在 Mobaxterm 终端中显示或绘制图形/图表
- javascript - 如何使用 AngularJS 解决 Karma 测试的“无法读取属性 'replace' of null”?
- d3.js - 如何在 d3 中创建自定义元素
- python - Python:在迭代列表时编辑列表