FieldValue.increment не работает, но добавляет «операнд» - PullRequest
0 голосов
/ 09 апреля 2019

Я использую базу данных Firebase и простую функцию с новым FieldValue.increment для увеличения счетчика, но это не работает, но добавляет поле «операнд», не увеличивая его.

Моя функция очень проста:

exports.updateCounters = functions.https.onRequest((req, res) => {
  // grab the parameters.
  const username = req.query.username;

  var updateObject = { };
  updateObject[username] = admin.firestore.FieldValue.increment(1);
  admin.database().ref('counterstest').update(updateObject);
});

При развертывании и вызове этой функции я ожидаю увидеть

countertest: {
  myusername: 1
}

, но вижу

countertest: {
  myusername: {
    operand: 1
  }
}

вместо этого и операнд: 1 никогда не увеличивается, даже если я вызываю свою функцию несколько раз.

Может кто-нибудь указать, какую ошибку я здесь делаю?

Спасибо!

1 Ответ

1 голос
/ 09 апреля 2019

FieldValue.increment() - это функция Cloud Firestore, но вы, очевидно, пытаетесь применить ее к базе данных реального времени. Это не сработает - это разные базы данных, а база данных реального времени не поддерживает атомарные приращения, подобные этой.

То, что вы на самом деле здесь делаете, - это запись JSON-представления возвращенного объекта FieldValue в базу данных Realime. По-видимому, внутренне, объект FieldValue имеет свойство с именем «операнд», которое содержит значение для увеличения на.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...