"ref.child не является функцией" - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь реализовать простую облачную функцию, которая, когда новый пользователь добавляется в путь my / users без каких-либо значений по умолчанию, добавляет структуру объекта по умолчанию для этого нового пользователя.

Если нет дочерних элементовуказаны под именем этого пользователя, метод должен просто возвращать.

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

    exports.defaultUser = functions.database.ref('/users/{any}')
        .onCreate((snapshot, context) => {

            var ref = functions.database.ref('/users');
            ref.child('%s', snapshot.key).once('value', function 
    (snapshot) {
                var exists = (snapshot.val() !== null);
                if (!exists) return;
            });

            const userObj = {
                name: "default",
                mail: "default",
                pwd: "default",
                token: "default",
                groups: {},
                plants: {},
                points: 0
            }

            return snapshot.ref.child.set(userObj);
        });

В журналах функций возвращается "ref.child is not function".

Я очень новичок вjavascript и firebase, так что это должно выглядеть очень запутанно для кого-то опытного.

1 Ответ

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

Вы либо ищете:

snapshot.ref.set(userObj);

Или:

snapshot.ref.child("somekey").set(userObj);

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

...