запись в облачный пожарный магазин через облачные функции не работает - PullRequest
0 голосов
/ 05 февраля 2020

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

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

const app = express();

let db = admin.firestore();

app.get('/helloworld', (req, res) => res.send('Hello World!'));

app.post('/signup', (req, res) => {


  var email = req.body.email;
  var username = req.body.username;
  var password = req.body.password;


  //creating document.  Here is where it isn't working

  let docRef = db.collection('UsersMain').doc('firstdoc');

    let data = {
    Email: 'a@gmail.com',
    UserName: 'Matt'
  };

  let setDoc = docRef.set(data);

console.log(db);
  res.send('Login Complete');
});



const api1 = functions.https.onRequest(app);

module.exports = {api1};

, а вот мои разрешения в пожарном депо:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

Может кто-нибудь взглянуть и сообщить мне, что я делаю неправильно? В идеале должен быть создан новый документ с именем 'firstdo c', в котором будут содержаться данные электронной почты и имя пользователя. Спасибо!

1 Ответ

0 голосов
/ 05 февраля 2020

Первое, что приходит на ум при просмотре вашего кода, это то, что вы не ждете завершения docRef.set(data) перед отправкой результата обратно вызывающей стороне. Это означает, что облачные функции могут уничтожить вашу среду до полной записи в Firestore.

Чтобы гарантировать, что запись завершена, вы должны записывать результат в ответ только после завершения записи в базу данных. Что-то вроде:

docRef.set(data).then(() => {
  res.send('Login Complete');
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...