Как мне обновить объект в специфическом свойстве Firebase? - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь обновить пользователя в Firebase, используя Angular 4 с AngularFire2. В пользовательском объекте, который сохранен в базе данных firebase, я хочу вставить другой объект в свойство массива. В моем сервисе я пытаюсь сделать эту функцию (у меня уже есть все в ключах и т.д.)

generateUserCharacterList(){
  this.genCharList = new CharacterList(x, y, z)
  this.UserListOfCharacters.push(this.genCharList)
  //Other code...
}

Это не работает, хотя

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Я считаю, что вы используете базу данных Firebase в реальном времени по сравнению с Firestore.

Вы должны взять значение массива в переменной, изменить значение и затем вызвать метод обновления для объекта ref с этим новым значением. Вот пример кода для объяснения:

let userRef = db.object('users/aad1asd123-123asd');
let user = userRef.valueChanges();
let listOfChars = user.listOfChars;

listOfChars.push('a');
listOfChars.push('b');
listOfChars.push('c');
listOfChars.push('d');

userRef.update({listOfChars: listOfChars});
0 голосов
/ 30 августа 2018

В Обновлении определенных полей в документации указано использование метода .update.

function writeNewPost(uid, username, picture, title, body) {
  // A post entry.
  var postData = {
    author: username,
    uid: uid,
    body: body,
    title: title,
    starCount: 0,
    authorPic: picture
  };

  // Get a key for a new Post.
  var newPostKey = firebase.database().ref().child('posts').push().key;

  // Write the new post's data simultaneously in the posts list and the user's post list.
  var updates = {};
  updates['/posts/' + newPostKey] = postData;
  updates['/user-posts/' + uid + '/' + newPostKey] = postData;

  return firebase.database().ref().update(updates);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...