Согласно документации Firebase (https://rnfirebase.io/docs/v5.x.x/database/reference/Reference#push), Reference.push()
не возвращает обещание. Возвращает ссылку.
Если вы хотите знать, когда запись на сервер завершена,Вы можете передать функцию обратного вызова в качестве второго параметра функции .push()
.
export const startAction = (item) => {
return (dispatch) => {
firebase.database().ref(`/users/${firebase.auth().currentUser.uid}/some/`)
.push(item, error => {
if (!error)
console.log("Item added to firebase");
else
console.warn("There was an error writing to the database, error);
})
}
}
РЕДАКТИРОВАТЬ: На основе комментариев Салакара здесь и на этой проблеме Github :
без await также правильно, поскольку создание новой ссылки + путь к идентификатору с помощью push () выполняется синхронно / на стороне клиента
Вы должны быть в состоянии сделать следующее:
const ref = firebase.database()
.ref(`/users/${firebase.auth().currentUser.uid}/some/`)
.push(item)
// Now do something with `ref.key`