我有一个本机应用程序,可以确定用户是否允许Firebase Cloud Messaging,然后保存用户令牌。它还可以在同一时间保存用户的地理位置。
如果在我的模拟器上启用了调试模式,则这些功能都可以正常工作。但是,如果调试模式未运行,则会收到权限拒绝警告。有谁知道为什么它只能在调试模式下工作?
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中进行了测试。
答案 0 :(得分:2)
权限被拒绝错误表示安全规则拒绝了查询。如果您的应用程序只有此处显示的规则,则表示查询时没有用户登录该应用程序。