ошибка при получении данных уведомлений из firebase - PullRequest
0 голосов
/ 20 ноября 2018

Здравствуйте, я новичок в реакции на родную.Я работаю над push-уведомлениями через firebase.Я реализовал функциональность уведомления.Но проблема в том, что я не могу получить данные из базы данных Firebase в реальном времени.Вот мой код для извлечения данных из Firebase.Я просто хочу получить события, которые показаны на изображении.

fetchFriendsList=(eventId)=>{
  let allEventsList = [...this.state.allEventsList];

  firebase.database().ref('/events').child(eventId).once('value').then((snapshot) => {
    let data = snapshot.val();
    let items = Object.values(data);

    allEventsList.push(items);
    this.setState({allEventsList : allEventsList});
    ToastAndroid.show("kk>"+allEventsList.length , ToastAndroid.SHORT);
  }).then((data)=>{

  }).catch((error)=>{
    //error callback
    console.log('error ' , error)
  })   
}

//get event id from user events
deleteOldEvents=()=>{
  let eventsList = [...this.state.userEventsList];

  for(var i=0;i<eventsList.length;i++){
    this.deleteFromFireBase(eventsList[i].eventId)
  }
}

//app users remove that not in contacts
deleteFromFireBase=(eventId)=>{
  let timeRemaining = 1;
  firebase.database().ref('/events').child(eventId).once('value').then((snapshot) => {
    let data = snapshot.val();
    let STime = data.sTime;  // start time
    let eventDate = data.eventDate;
    timeRemaining=this.remainingTimeInMin(STime,eventDate);
  }).then((data)=>{
    //remove from events
    if(timeRemaining < 0){
      this.setState({removeEventsList:[]});    

      firebase.database().ref('/events').child(eventId).child('friends').once('value').then((snapshot) => {
        let data = snapshot.val();
        let items = Object.values(data);
        this.setState({removeEventsList:items});    
      }).then((data)=>{
        //remove event data from users node
        let removeEventsList = [...this.state.removeEventsList];

        for(var i=0;i<removeEventsList.length;i++){
          let getPhone= removeEventsList[i].phone
          firebase.database().ref('/users').child(getPhone).child('/events').child(eventId).remove();
        }

        //remove whole event from event node
        firebase.database().ref('/events').child(eventId).remove();
      }).catch((error)=>{
        //error callback
        console.log('error ' , error)
      }) 
    }
  }).catch((error)=>{
    //error callback
    console.log('error ' , error)
  })   
}

enter image description here

...