/ / Намерете обект в Firebase по една стойност - firebase, firebase-база данни, angularfire, angularfire2

Намерете обект в Firebase с една стойност - firebase, firebase-база данни, angularfire, angularfire2

Имам следващ списък с база данни (потребителски имена + потребителски идентификатор).

въведете описанието на изображението тук

Как мога да намеря обект по идентификатор на потребителя и да променя неговия ключ (потребителско име)?

Използвам AngularFire2 с Angular 5.

Отговори:

1 за отговор № 1

Можете да намерите дочерния възел по неговата стойност със заявка като тази:

var users = firebase.database().reference("usernames");
var query = users.orderByValue().equalTo("Sk6I..."ltA2");

Като прикачите слушател към тази заявка, ще можете да намерите референцията и ключа на потребителя (или „всички потребители“, тъй като технически може да има повече ключове със същата стойност), съответстващи на UID.

Но не можете да "преименувате възел. Ще трябва да премахнете съществуващия възел и да създадете нов. Повече за това вижте:


0 за отговор № 2

Решение за моя случай:

this.db.list("usernames", ref => ref.equalTo(uid)).remove() // Remove old value
this.db.list("usernames", ref => ref.equalTo(uid)).set(
username, uid
) // Create new value