Функция Firebase сработала дважды - PullRequest
2 голосов
/ 20 марта 2019

Мне нужно создать пользователя Firebase, у которого есть 3 связанных набора данных, сохраненных в базе данных реального времени, расположенной, как показано ниже.

root
  |
  x - dataset1
  |
  x - dataset2
  |
  x - whatever
  |   |
  |   x - dataset3
  |

Пользователь создается функцией firebase, имеющей следующую схему:

exports.createNewUser = functions.https.onRequest((req, res) => {
    const userData = {
        ...
    };

    const data1 = {
        "key1" : "value1",
        "key2" : "value2",
        ...
    };

    const data2 = {
        "key1" : "value1",
        "key2" : "value2",
        ...
    };

    const data3 = {
        "key1" : "value1",
        "key2" : "value2",
        ...
    };

    admin.auth().createUser(userData)
    .then(userRecord => (
        var promises = [];

        promises.push(admin.database().ref(`dataset1/${userId}`).set(data1));
        promises.push(admin.database().ref(`dataset2/${userId}`).set(data2));
        promises.push(admin.database().ref(`whatever/dataset3/${userId}`).set(data3));

        return Promise.all(promises);
    )}
    .then(() => {
        res.status(200).end();
    })
}

Странно то, что когда функция запускается в первый раз, она работает отлично, но каждый раз после первого запускается дважды.

До сих пор я решила переместить «data3» под рутом, но так ли этоошибка или я сделал что-то не так?

спасибо заранее

** РЕДАКТИРОВАТЬ **

@ Дуг Стивенсон Я попробовал ваше предложение, но, к сожалению, нет, здесьВот несколько скриншотов.

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

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