Ionic AngularFire Realtime Database - Изменить UID по умолчанию для введенной записи - PullRequest
0 голосов
/ 07 июня 2018

Я работаю над приложением Ionic, которое, помимо прочего, должно назначить соответствующую запись в базе данных с ключом, который совпадает с с сгенерированным UID пользователя, который они получают при регистрации.Также важно отметить, что сами пользователи не могут создавать учетные записи - только один администратор может.

Image of what I want to change

Вот мой текущий код.

addUserToDb(username: string, email: string, password: string) {
    this.firebaseAuth.auth.createUserWithEmailAndPassword(email, password).then(data => {
    var newId = data.user.uid; // Gets UID of new user.
    const usersRef = this.db.list('users'); // Gets list to be pushed to
    let keyToChange = usersRef.push(
    {
        admin: false,
        identifier: data.user.email,
        username: username,
    }).key; // Does the push AND gets the key for the newly added entry
    console.log(`User's old id is ` + keyToChange + " | User's new id will be " + newId);
    var userToUpdate = this.db.object('users/' + keyToChange); // Gets entry to be edited
    userToUpdate.update({[keyToChange]: newId}); // <- WHAT DO I DO HERE?
    console.log('Success!', username);
  })
  .catch(err => {
    username: null;
    email: null;
    password: null;
    console.log('Something went wrong:', err.message);
  });    
}

Прямо сейчас код вызывает этот результат:

What I actually get

Как мне это исправить?Спасибо!

1 Ответ

0 голосов
/ 07 июня 2018

Вместо использования «push», который генерирует идентификатор, вы можете использовать «set» с нужным вам идентификатором

 this.db.object(`users/${newId}`).set({
    admin: false,
    identifier: data.user.email,
    username: username,
 });
...