Я пытаюсь отправить широту и долготу адреса в базу данных Firebase. Как ни странно, значение выходит из системы, но не будет отправлено в базу данных.
Я использую библиотеку React Geocode, чтобы получить долготу и широту. Это работает (они регистрируются на консоли), но, видимо, требуется некоторое время для его работы, поскольку это не значения, отправляемые в базу данных.
Я провел некоторое исследование и думаю, что это может быть потому, что я где-то там нет функции asyn c. Может ли это быть проблемой?
onSubmit={(values, { setSubmitting }) => {
values.address = `${values.street}, ${values.num}, ${values.neighbourhood}, ${values.city}`
Geocode.fromAddress(values.address).then(
response => {
const { lat, lng } = response.results[0].geometry.location;
values.latitude = lat.toString() //why doesn't this work?
values.longitude = lng.toString() //why doesn't this work?
console.log(values.latitude) //this will log on the console
//but won't go to the database
},
error => {
console.error(error);
}
);
const { name, latitude, longitude, rating, address } = values
const valuesToSend = { name, latitude, longitude, rating, address }
async function writeToFirebase() {
await firestore.collection('businessesPendingAdminApproval').add(valuesToSend)
}
writeToFirebase()
}}>