Я пытаюсь получить данные, которые только что были отправлены в firebase, чтобы я мог использовать $key
в другом нажатии в попытке нормализовать данные. Я использую angularfire 2 и ionic 2
У меня есть провайдер, который возвращает обещание:
pushData(fbPath: string, data): any {
return new Promise(resolve => {
resolve(this.af.database.list(fbPath).push(data));
});
});
}
И в компоненте у меня есть простой вызов, который вызывается после того, как пользователь заполняет форму
this.api.pushData('organisations/', organisation).then(org => {
console.log(org);
});
Однако в console.log
я получаю
Что вряд ли можно использовать. Все, что я хочу в ответ, это $key
, который в настоящее время равен org.path.o[1]
, который, я думаю, я могу использовать, но это кажется немного шатким.
Любопытно, почему then
и catch
не определены. Я хотел бы, чтобы возвращаемые данные были аккуратным объектом, например
{
'$key':'-KfB5tltOeuXpQ_pRzR3',
'name':'My New Organisation',
'registeredDate':345345345345
}
Что довольно просто при получении данных из firebase с помощью простого
getData(fbPath: string) {
return new Promise(resolve => {
this.af.database.list(fbPath).subscribe(res => resolve(res));
});
}
В Angularfire2 docs говорится, что сохраненные данные (в .list
) имеют возвращенное обещание в методе push. Я просто не могу заставить его работать должным образом.