【发布时间】:2020-05-05 20:26:33
【问题描述】:
您好,我是 firebase 新手,不知道当某个 firebase 变量发生变化时如何在我的 react 本机应用程序更新中制作屏幕。
在我的应用程序的主屏幕中,用户的帖子从componentDidMount 的firebase 中获取,然后呈现:
componentDidMount = () => {
this.setup();
};
setup = async () => {
const { currentUser } = await firebase.auth();
this.setState({ currentUser });
await firebase
.database()
.ref("users/" + currentUser.uid + "/posts")
.on("value", snapshot => {
this.setState({posts: snapshot.val()})
});
}
// render posts
在单独的屏幕中,用户可以选择添加帖子并更新 firebase 数据库:
addPost = async () => {
const { currentUser } = firebase.auth();
await firebase
.database()
.ref("users/" + currentUser.uid + "/posts")
.push({
post: // data for post
});
但是,虽然数据库已成功更改,但在手动重新加载之前,主屏幕不会更新并显示新添加的帖子。如何在主屏幕上添加监听器,以便当帖子数据库变量更改时,屏幕会自动更新。
【问题讨论】:
标签: javascript firebase react-native firebase-realtime-database