栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Firebase权限被拒绝

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Firebase权限被拒绝

默认情况下,Firebase控制台中项目中的数据库仅可由管理用户读取/写入(例如,在CloudFunctions或使用Admin SDK的进程中)。常规客户端SDK的用户无法访问数据库,除非您更改服务器端安全规则。


您可以更改规则,以便只有经过身份验证的用户才能读取/写入数据库:

{  "rules": {    ".read": "auth != null",    ".write": "auth != null"  }}

但是由于您不是从代码中登录用户,因此数据库拒绝您访问数据。要解决此问题,您将需要允许未经授权的数据库访问,或者在访问数据库之前登录用户。

允许未经身份验证的数据库访问

目前(直到本教程更新)最简单的解决方法是进入项目控制台的“数据库”面板,选择“规则”选项卡,然后用以下规则替换内容:

{  "rules": {    ".read": true,    ".write": true  }}

这使得您知道数据库URL的任何人都可以读取和写入新数据库。在投入生产之前,请确保再次保护数据库,否则可能会有人滥用数据库。

访问数据库之前登录用户

对于(稍微)更耗时但更安全的解决方案,请调用Firebase身份验证

signIn...
方法之一以确保用户在访问数据库之前已登录。最简单的方法是使用匿名身份验证

firebase.auth().signInAnonymously().catch(function(error) {  // Handle Errors here.  var errorCode = error.pre;  var errorMessage = error.message;  // ...});

然后在检测到登录后附加您的听众

firebase.auth().onAuthStateChanged(function(user) {  if (user) {    // User is signed in.    var isAnonymous = user.isAnonymous;    var uid = user.uid;    var userRef = app.dataInfo.child(app.users);    var useridRef = userRef.child(app.userid);    useridRef.set({      locations: "",      theme: "",      colorScheme: "",      food: ""    });  } else {    // User is signed out.    // ...  }  // ...});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430260.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号