【发布时间】:2021-10-18 00:47:41
【问题描述】:
我正在构建一个通过 Firebase 实时数据库查找 JSON 数据库的 React Web 应用程序。无需身份验证即可获取数据!
fetch('https://my-awesome-site.firebaseio.com/database.json')
.then(res => {
if(!res.ok) {
throw Error('Could not fetch data for that resource, Captain.')
}
return res.json();
})
.then(data => {
setAwesomeData(data);
setIsPending(false);
setError(null);
return data;
})
.catch(err => {
setIsPending(false);
setError(err.message);
})
实时数据库的规则如下:
{
"rules": {
".read": "true",
".write": "true"
}
}
我现在正在尝试允许匿名身份验证。我已经通过“登录方法”启用了它,并在我的 javascript 中添加了一个匿名登录和控制台登录用户的功能。
const [authenticated, setAuthenticated] = useState(false);
if (authenticated !== true) {
firebase.app().auth().signInAnonymously()
.then(() => {
firebase.app().auth().onAuthStateChanged((user) => {
if(user) {
var uid = user.uid;
console.log(uid);
}
})
}).then(() => {
setAuthenticated(true);
}).catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
});
}
我的实时数据库规则现在是:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
创建了匿名用户,但是我无法像以前那样获取我的数据。在 Firebase 或可能在我的 javascript 中设置规则时,我是否缺少步骤?感谢您的帮助!
【问题讨论】:
标签: javascript firebase-realtime-database firebase-authentication