首页 > 解决方案 > 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 中进行了测试。

标签: firebasereact-nativefirebase-realtime-databasereact-native-firebase

解决方案


Permission denied 错误意味着安全规则拒绝了查询。如果您的应用程序的唯一规则是此处显示的内容,则表示在查询时没有用户登录应用程序。


推荐阅读