Как создать новый родительский узел вне .ref (/ path) в базе данных Firebase Realtime, используя облачные функции (Typescript)? - PullRequest
1 голос
/ 31 марта 2020

Diagram of Database

Поэтому я хочу, чтобы мои облачные функции создавали новый родительский узел с именем «Civil» всякий раз, когда в «Агенте» появляется новый узел. Вот код, который я пробовал:

import * as functions from 'firebase-functions';

export const addCivilData = functions.database
.ref('/Agent/{AgentID}')
.onCreate((snapshot, context) => {

    const userData = snapshot.val() 
    const newUsername = userData.username
    const defCivilStatus: string = "new"

    return snapshot.ref.parent?.child('Civil').child(`${newUsername}`).update(`${defCivilStatus}`)
})

The? После того, как родительский автоматически генерируется VSCODE и показывает некоторые правила при наведении указателя мыши.

Rules shown

и если я уберу это "?" это дает красное подчеркивание на snapshot.ref.parent.

Я хочу создать родительский узел "Civil" и дочерний узел с выбранным именем пользователя и установить его значение в defCivilStatus. пожалуйста, помогите

РЕДАКТИРОВАТЬ: скриншоты дополнительных ошибок

Logs

used .set here

cmd error

1 Ответ

1 голос
/ 31 марта 2020

Вы можете попробовать это:

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

// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.addCivilData = functions.database
.ref('/Agent/{AgentID}')
.onCreate((snapshot, context) => {

 const userData = snapshot.val();
 console.log('userData', userData);
 const newUsername = userData.username;
 console.log('newUsername', newUsername);
 const defCivilStatus = "new";
         return snapshot.ref.parent.parent.child('Civil').child(`${newUsername}`).set(`${defCivilStatus}`);
});

И следить за забавой с огненной базой c. logs

Используйте символ !, если IDE показывает любую ошибку в строке return snapshot.ref...., как показано в приведенном ниже коде:

return snapshot.ref.parent!.parent!.child('Civil').child(`${newUsername}`).set(`${defCivilStatus}`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...