firebase.database.ref ("..."). set ({}) создает новый объект вместо обновления существующего. - PullRequest
0 голосов
/ 07 октября 2018

Я создаю систему «нравится / не нравится» для сообщений на моем сайте.Каждый раз, когда пользователь нажимает кнопку «Мне нравится», в базе данных обновляется количество лайков.Объект, хранящийся в базе данных, имеет URL-адрес изображения, категорию и количество лайков в качестве ключей.

Ниже приведен мой код обновления: likesButton (img) - это функция, которая вызывается, когда пользователь щелкаеткнопка «Мне нравится».

likedButton(img) {
    var url = img.src;
    var x = this.db.list('/userPosts',

  ref => ref.orderByChild('url').equalTo(url));


  x.snapshotChanges().subscribe(

    (datas) => { 
      var keys  = datas[0]['key'];
      var obj = x.valueChanges().subscribe((z) => {
        var n = z[0]['likes'];
        n++;
        console.log(n);
        firebase.database().ref('/userPosts'+keys+'/likes').set({
          'likes' : n
      });


      });

    });
  }
}

Я хочу обновить существующее значение «лайки».Но функция заканчивается созданием нового объекта.

1 Ответ

0 голосов
/ 07 октября 2018

Вместо этого следует использовать update, поскольку вызывающий набор объекта полностью заменит его или создаст новую запись, если она не существует

firebase.database (). Ref ('/ userPosts' + keys + '/ likes').обновление ({лайков: n})

...