React Native如果存在于Firebase中

时间:2018-02-13 06:18:23

标签: reactjs firebase if-statement firebase-realtime-database native

我的火力架结构:

enter image description  re

你好,我正在努力; 一个人用自己的用户ID打开公告。在另一个人进入这个公告之后。如果第二个人想要向第一个人发送通知,他在firebase中使用第一个人的用户ID表,并将自己的用户ID放在第一个用户ID表中。如果第一个人想看,谁发送通知给他,他看起来拥有用户id的表,他看到其他人用户(其他人被发送通知给他)..现在一个人可以发送大量的时间通知,我想一个人只能发送一次因为这个原因我试图控制它。

sp_MSforeachtable @command1="ALTER TABLE ? ADD id int IDENTITY PRIMARY KEY CLUSTERED"

2 个答案:

答案 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语句的一部分来检查它是否为空。