Я загружаю изображение, используя angularTS
и firebase
.Мой план состоит в том, чтобы загрузить изображение и сохранить следующие данные.после этого я ожидаю возврата ID
из firebase database
обратного вызова.проблема в том, что я не могу получить данные, потому что они возвращаются мне вот так.
__zone_symbol__state : true
__zone_symbol__value : "viHnY2OpUnJkO2VbfgwJ"
__proto__ : Object
это мой код для загрузки изображения.
this.venueSvc.setVenuePhoto(this.venue, this.photo[0])
.subscribe(snapshot => {
console.log(snapshot);
console.log(snapshot.__zone_symbol__value);
console.log(snapshot.value);
});
и это мой сервис длязагрузите изображение в базу данных Firebase.
setVenuePhoto(venue: any, photo: File): Observable<any> {
console.log(venue);
let subjectTemp: any;
let uploadPhoto: any;
const uploadTask = firebase.storage()
.ref().child(this.PATH_VENUES + '/' + photo.name)
.put(photo);
uploadTask.on('state_changed', snapshot => {
uploadPhoto = snapshot;
let progress = Math.floor((uploadPhoto.bytesTransferred / uploadPhoto.totalBytes) * 100);
}, error => {
console.log(error);
}, () => {
venue.dateCreated = firebase.firestore.FieldValue.serverTimestamp();
venue.dateUpdated = firebase.firestore.FieldValue.serverTimestamp();
venue.venuePhoto = uploadPhoto.task.snapshot.downloadURL;
subjectTemp = this.venuesCollection.add(<Venue>venue.getData()).then(value => {
return value.id
});
this.viewUploadSubject.next(subjectTemp);
});
return this.viewUploadSubject;
}
Я должен быть в состоянии получить ID, потому что он мне понадобится, чтобы обновить место.Любое предложение будет оценено.