Reactjs 如果Firebase中存在,则进行本机反应
我的firebase结构: 你好,我正在努力; 一个人用自己的用户ID打开公告。在其他人进入本公告的内部后。若第二个人想要向第一个人发送通知,他将在firebase中使用第一个人的userid表,并将自己的userid放在第一个人的userid表中。若第一个人想看到谁向他发送通知,他会查看自己的用户id表,并看到其他人的用户id其他人被发送通知给他。。现在一个人可以发送很多时间的通知,我想一个人可以只发送一次,因为这个原因我正在努力控制它Reactjs 如果Firebase中存在,则进行本机反应,reactjs,firebase,if-statement,firebase-realtime-database,native,Reactjs,Firebase,If Statement,Firebase Realtime Database,Native,我的firebase结构: 你好,我正在努力; 一个人用自己的用户ID打开公告。在其他人进入本公告的内部后。若第二个人想要向第一个人发送通知,他将在firebase中使用第一个人的userid表,并将自己的userid放在第一个人的userid表中。若第一个人想看到谁向他发送通知,他会查看自己的用户id表,并看到其他人的用户id其他人被发送通知给他。。现在一个人可以发送很多时间的通知,我想一个人可以只发送一次,因为这个原因我正在努力控制它 if (firebase.database().ref(
if (firebase.database().ref(`/bavuruistek/${userid}`).child(katilan) === null ) {
firebase.database().ref(`/bavuruistek/${userid}`)
.push({
katilan, istek })
.then(() => {
dispatch({ type: STUDENT_REQUEST_SUCCESS });
Actions.pop();
});
}
if (firebase.database().ref(`/bavuruistek/${userid}`).child(katilan) !== null) {
console.log(firebase.database().ref(`/bavuruistek/${userid}/${katilan}`));
Alert.alert(
'Mesaj',
'Daha önce başvurunuz yapılmış!',
[
{ text: 'Tamam', onPress: () => null }
]
);
}
您试图在if语句中使用firebase.database.ref`/bavuruistek/${userid}`.childkatilan,该语句不起作用,因为1返回引用对象。尝试这样的事情可能会帮助你达到预期的结果:
firebase.database().ref(`/bavuruistek/${userid}`).child(katilan).once('value').then(snapshot => {
if (snapshot.val() === null ) {
firebase.database().ref(`/bavuruistek/${userid}`)
.update({
katilan, istek
})
.then(() => {
dispatch({ type: STUDENT_REQUEST_SUCCESS });
Actions.pop();
});
} else {
console.log(snapshot.val());
Alert.alert(
'Mesaj',
'Daha önce başvurunuz yapılmış!',
[
{ text: 'Tamam', onPress: () => null }
]
);
}
}
主要区别在于,我正在使用、读取生成的快照值,并将其作为if语句的一部分来检查它是否为null。hello。首先,非常感谢您的回复。我试过了,但不幸的是,它总是深入到if,但我删除了我的数据。为什么要删除数据?好的,我明白了。看起来if语句中的.push{katilan,istek}部分需要更改为.update{katilan,istek},因为.push将该路径视为一个包含值的数组,而不是一个像您所构造的对象。嘿,这一次的问题是它总是更新,它不会进入else方法。
firebase.database().ref(`/basvuruistek/${userid}`).on('value', (snapshot) => {
const { currentUser } = firebase.auth();
const notes = snapshot.val();
Object.keys(notes).forEach(key => {
if (notes[key].katilan !== currentUser.uid) {
this.setState({ click: true });
} if (notes[key].katilan === currentUser.uid) {
this.setState({ click: false });
}
});
});