Использование облачных функций Firestore - PullRequest
0 голосов
/ 10 мая 2018

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

exports.updateUser = functions.firestore
    .document('Users/{userId}')
    .onUpdate((change, context) => {

      const newValue = change.after.data().currentProject;
      console.log("Project changed to - " + newValue);

      const previousValue = change.before.data().currentProject;
      console.log("from - " + previousValue);


      // ### FROM HERE DOES NOT WORK ###

      const projectId = firestore.collection('Projects')
            .where('name', '==', newValue).get()
            .then(doc => {
                console.log(doc.data().id);
                return doc.data().id;
            });
    });

И я получаю ошибку

ReferenceError: firestore is not defined
    at exports.updateUser.functions.firestore.document.onUpdate (/user_code/index.js:25:14)

Так, может быть, мне нужны другие зависимости? Мой package.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "~5.12.0",
    "firebase-functions": "^1.0.1"
  },
  "devDependencies": {
    "eslint": "^4.12.0",
    "eslint-plugin-promise": "^3.6.0"
  },
  "private": true
} 

Чего мне не хватает? Пожалуйста, дайте подсказку

1 Ответ

0 голосов
/ 10 мая 2018

Вам потребуется использовать Firebase Admin SDK для доступа к коллекциям Firestore, которые находятся за пределами области действия вашей функции. Обычно это будет выглядеть примерно так:

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