Если я возвращаю firebase.database (). Ref () напрямую, а затем пытаюсь сделать database.push (), я получаю ошибку «database.push () не является функцией».
Однако, если я возвращаю только firebase.database () и затем выполняю database (). ref (). push (), тогда это работает.
1) Я попытался сделать возвращающую функцию асинхронной, не сработало.2) Я попытался сделать const database = firebase.database ();return database.ref ();Но это тоже не работает.
Firebase.ts
export class Firebase implements Service<Req, Sub> {
private firebaseRef: App;
constructor(dispatch: Dispatch<any>) {
this.firebaseRef = !firebase.apps.length
? firebase.initializeApp(FIREBASECONFIG, AppName)
: firebase.apps[0];
}
// Here I return the reference to the database
public async database() {
return await this.firebaseRef.database().ref();
}
}
Database.ts
export const postData = <E>(
data: string,
Error: Error<E>,
): Req<any> => ({
service: Firebase,
request: {
run: async (firebaseRef: Firebase) => {
try {
const database = await firebaseRef.database();
// database.push() is not a function
await database.push(data);
} catch (e) {
return new Error(ErrorInfo.make(e));
}
},
},
});
Ожидаемые результаты: возвращается ссылка на базу данных Firebase Realtime Database и данные
Фактические результаты: ошибка «database.push () не является функцией».