angular - Firebase - Firebase Gerçek Zamanlı Veritabanında bir nesneyi nasıl güncelleyebilirim
Mevcut bir nesne nasıl güncellenir.
Firebase Realtime Database'deki bir nesneyi güncellerken sorun yaşıyorum.
Bunu nasıl yapacağını bilen var mı?
Ben kullanıyorum: Angular ve TypeScript.
İşte benim mevcut TypeScript kodum:
updateProfile = (profile): any => {
return new Promise((resolve, reject) => {
var refProfile = new Firebase("https://poolcover.firebaseio.com/profiles");
refProfile.update(profile, function(error) {
if (error) {
console.log('Synchronization failed');
resolve(false);
} else {
console.log('Synchronization succeeded');
resolve(true);
}
});
})
}
Güncellemek istediğim veritabanı tablosu ve profil:
Cevap #1
Profil için anahtarı bulmanız gerekiyor. Kullanıcı verilerini saklarken, .push() ile bir id yerine uid üzerinden anahtar kullanmalısınız.
Ayrıca, tamamlanma geri çağrısını kullanmayın; bunun yerine bir dinleyici kullanın.
Tamamlanmış bir geri arama, bir sunucu yanıtını bekler, oysa bir dinleyici önce yerel olarak tetiklenir. Yani bir dinleyici geri araması daha hızlıdır.
constructor() {
this.profileRef = new Firebase("<my-firebase-app>/profiles");
var currentUser = this.profileRef.getAuth(); // if authenticated
this.userRef = refProfile.child(currentUser.uid);
userRef.on('value', (snap) => {
console.log('Profile updated');
console.log(snap.val()); // update profile info
});
}
updateProfile(profile) {
this.userRef.update(profile);
}
