Как отобразить дату в FireBase с реагировать родной - PullRequest
0 голосов
/ 28 февраля 2020

Всем! Я уже подключил свое приложение к Firebase, но я не могу отобразить данные пользователя в моем приложении: Не могли бы вы go через мой код:

componentDidMount() {
firebase.auth().onAuthStateChanged(user => {
  if(user!=null){
    userId = firebase.auth().currentUser.uid
  }else {
    this.props.navigation.navigate("Loading");
  }
      }),
firebase.database().ref('Users/').on('value', function (snapshot) {
     console.log(snapshot.val()); //this work
  // let name = snapshot.val().name;
  // this.setState ({users :name,}) //this not work
  }); 
    }

...... и

<View style={styles.contain}>
        <ProfileDetail
          // image={userData.image}
          // textFirst={users.name}
          // point={userData.point}
          textSecond={this.state.name} //. i'd like to display the child on this
          textThird={currentUser.email}
          // onPress={() => navigation.navigate("ProfileExample")}
        />

что-то не так с моим кодом? пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 28 февраля 2020

Измените это:

firebase.database().ref('Users/').on('value', function (snapshot) {
     console.log(snapshot.val()); //this work
  // let name = snapshot.val().name;
  // this.setState ({users :name,}) //this not work
  }); 

на это:

firebase.database().ref('Users/').on('value', ((snapshot) => {
     console.log(snapshot.val()); //this work
     let name = snapshot.val().name;
     this.setState ({users :name,})
  }); 

Используйте функцию стрелки вместо объявления нормальной функции.

Функция стрелки не имеет этого. Используется значение this лексической области видимости; Функции стрелок следуют нормальным правилам поиска переменных. Таким образом, при поиске того, чего нет в текущей области видимости, функция со стрелкой заканчивает тем, что находила this из включенной области видимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...