我的火力架结构:
你好,我正在努力; 一个人用自己的用户ID打开公告。在另一个人进入这个公告之后。如果第二个人想要向第一个人发送通知,他在firebase中使用第一个人的用户ID表,并将自己的用户ID放在第一个用户ID表中。如果第一个人想看,谁发送通知给他,他看起来拥有用户id的表,他看到其他人用户(其他人被发送通知给他)..现在一个人可以发送大量的时间通知,我想一个人只能发送一次因为这个原因我试图控制它。
sp_MSforeachtable @command1="ALTER TABLE ? ADD id int IDENTITY PRIMARY KEY CLUSTERED"
答案 0 :(得分:1)
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 });
}
});
});
答案 1 :(得分:0)
您正在尝试在if语句中使用firebase.database().ref(`/bavuruistek/${userid}`).child(katilan)
,这不起作用,因为1).child()
返回Reference
个对象。尝试这样的事情可以帮助你实现预期的结果:
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 }
]
);
}
}
主要区别在于我正在使用.once
,读取生成的快照值,并将其作为if语句的一部分来检查它是否为空。