![](/img/trans.png)
[英]Uncaught Error in snapshot listener:, FirebaseError: [code=permission-denied]: Missing or insufficient permissions
[英]Uncaught Error in snapshot listener: FirebaseError: Missing or insufficient permissions
我正在尝试通过使用 onSnapshot 侦听器获取从 firebase 显示的帖子数据,但它显示此 Firebase 错误。 有人可以帮助解决这个错误吗
应用程序.js:
import { useState, useEffect } from 'react';
import './App.css';
import loggo from './icons/loggo.svg';
import Post from './Components/Post.js';
import { db } from './firebase';
function App() {
const [posts, setPosts] = useState([]);
useEffect(() => {
db.collection('posts').onSnapshot(snapshot => {
setPosts(snapshot.docs.map(doc => doc.data()));
})
}, []);
return (
<div className="App">
<div className="app_header">
<img className="header_Image" src={loggo} alt="insta" />
</div>
{
posts.map(post => (
<Post username={post.username} caption={post.caption} imageUrl={post.imageUrl} />
))
}
</div >
);
}
export default App;
如果您使用自己的 Firestore,请转到管理控制台并将数据库规则更改为:
allow read, write: if true;
快照侦听器至少需要读取权限。 (包括 get 和 list),因此您的“发布”收集规则至少应为:
allow read;
因为它是一个帖子集,所以我假设您只想允许经过身份验证的用户写权限:
allow write : if request.auth != null;
所以所有这些将是:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
//A read is : get and list,
//A write is : create, update, and delete. you can separate them if you want
match /posts/{post} { //this applies to post collection
allow read;
allow write : if request.auth != null;
}
// other collections ....
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.