FieldValue.increment не является функцией - PullRequest
0 голосов
/ 16 октября 2019

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

это мойкод:

    const auth = require('firebase/auth');
    const functions = require('firebase-functions');
    const nodemailer = require('nodemailer');
    const FieldValue = require('firebase-admin').firestore.FieldValue;

    const admin = require('firebase-admin');
    admin.initializeApp(functions.config().firebase);

const db = admin.firestore();


exports.addPoints = functions.firestore
  .document(`users/{user}`)
  .onCreate(async (snap, context) => {

  const invitingFriendId = snap.data().invitingFriendId;
  const invitingFriendRef = db.collection('users').doc(invitingFriendId); 

  return invitingFriendRef.update("points", db.FieldValue.increment(50));
});

1 Ответ

0 голосов
/ 16 октября 2019

Похоже, вы пытаетесь использовать функции SDK для запроса Cloud Firestore. Это не сработает вообще. Функция SDK используется только для объявления триггеров функций. Вам нужно использовать Firebase Admin SDK для фактического выполнения запроса при срабатывании функции.

Требуется firebase-admin самым простым способом:

const admin = require('firebase-admin');

Затем выполните запрос с ним:

admin.firestore().documet("...").update(...);

На приращение FieldValue можно ссылаться так:

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