我试图通过使用onSnapshot侦听器从firebase显示的帖子数据,但显示此Firebase错误。有人能帮我解决这个问题吗
App.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;
3条答案
按热度按时间yzuktlbb1#
如果您使用自己的firestore,转到管理控制台并将数据库规则更改为:
allow read, write: if true;
lzfw57am2#
快照监听器至少需要读权限。(包括get和list),所以你的“post”收集规则至少应该是:
因为它是一个发布集合,所以我假设您希望只允许经过身份验证用户具有写权限:
所以加起来就是
fzsnzjdm3#
[2023年更新]
它基本上已经超时了,所以你只需要去你的
将www.example.com值更改为未来日期(& C)timestamp.date values to future dates
例如