Я новичок, чтобы реагировать на родную систему, и мне трудно получать значения из запроса Firebase внутри обещания.
Я пытался установить setState в обещании, но консоль возвращает: TypeError: _this2.setState не является функцией.
_getActivites() {
const latitude = 42.297761;
const longitude = 4.636235;
const radius = 5;
var keys = [];
var activitesToState = [];
const firebaseRef = firebase.database().ref("activites_locations/");
const geoFire = new GeoFire(firebaseRef);
var geoQuery;
var activites = [];
geoQuery = geoFire.query({
center: [latitude, longitude],
radius: radius
});
geoQuery.on("key_entered", function(key, location, distance) {
keys.push(key);
});
geoQuery.on("ready", function() {
var promises = keys.map(function(key) {
return firebaseRef.child(key).once("value");
});
Promise.all(promises).then((snapshots) => {
snapshots.forEach(function(snapshot) {
activites.push(snapshot.val());
});
this.setState({
activitesState: activites,
})
}).catch((error) => {
console.log(error);
});
});
};
componentDidMount() {
firebase.auth().signInAnonymously()
.then(() => {
this.setState({
isAuthenticated: true,
});
});
this._getActivites();
}