Я наконец получил его.
Отказ от ответственности: Это мой первый проект Firebase, поэтому все описание ниже основано на моих наблюдениях.Если я что-то не так, пожалуйста, поправьте меня, я действительно хочу это понять.Спасибо:)
В основном, когда я получаю try
, я ожидаю получить данные обратно, в данном случае data.ref.getDownloadURL()
.Поскольку это обещание, я использовал метод .then
для получения «полных» данных, а затем запустил все остальное внутри этого ответа.Мне кажется, что эти данные существуют только там.
onCreateUser(uForm: FormGroup) {
const currentUserID = this.userAuth.getCurrentUserID();
let picture;
this.uploadService.pictureUpload(this.fileInput.nativeElement.files['0'], currentUserID).then(
async (data) => {
try {
data.ref.getDownloadURL().then(
async (downloadURL) => {
picture = downloadURL;
const email = this.userProfileForm.value.email;
const firstName = this.userProfileForm.value.firstName;
const lastName = this.userProfileForm.value.lastName;
const userObj = {
'uid': currentUserID,
'email': email,
'firstName': firstName,
'lastName': lastName,
'picture': picture
};
if (this.editMode) {
return this.db.object('profile/' + currentUserID).update(userObj).then(
() => {
return this.presentToaster('Dados atualizados');
},
(e) => {
this.presentToaster(e);
console.error(e);
}
);
} else {
const load = await this.loadCtrl.create({
message: 'Criando Usuario'
});
await load.present();
return this.db.object('profile/' + currentUserID).set(userObj).then(
() => {
load.dismiss();
return this.navCtrl.navigateRoot('news');
},
(error) => {
load.dismiss();
this.presentToaster(error);
console.error(error);
}
);
}
//
}
);
} catch (error) {
console.error(error);
}
},
(error) => {
console.error(error);
}
);
}