Как получить отдельные значения JSON из базы данных Firebase? - PullRequest
0 голосов
/ 11 июня 2018

Допустим, у меня есть узел firebase, который имеет вид dbref = firebase.ref ('/ Transfer_Request / {pushID] /').

И клиент записывает два значения;from_ID и to_ID в dbref.Как мне получить отдельные значения from_ID и to_ID из функций Firebase Cloud?

My database

Мой код:

exports.TransferTicket = functions.database.ref('/Transfer_Request/{pushID}').onWrite((event) => {

  const original = event.data.val();
  const from_ID = original.from_ID;
  const to_email_ID = original.to_ID;

  //search for to_email ID
  return admin.database().set("A transfer request was just made");

});

Я получаю две ошибки:

1)

TypeError: admin.database (...). Set не является функцией export.TransferTicket.functions.database.ref.onWrite (/user_code/index.js:41:25) в объекте.(/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27) на следующем (родном) в /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 в __awaiter(/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12) в cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36) в / var /tmp / worker / worker.js: 716: 24 at process._tickDomainCallback (внутренняя / process / next_tick.js: 135: 7)

2)

Ошибка типа:Не удается прочитать свойство 'from' из null в exports.TransferTicket.functions.database.ref.onWrite (/user_code/index.js:35:25) в Object.(/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27) на следующем (родном) в /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 в __awaiter(/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12) в cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36) в / var /tmp / worker / worker.js: 716: 24 at process._tickDomainCallback (внутренняя / process / next_tick.js: 135: 7)

1 Ответ

0 голосов
/ 11 июня 2018

Первая проблема связана с тем, что при выполнении следующих действий вы пропускаете Firebase Reference.

return admin.database().set("A transfer request was just made");

. Вам нужно сделать:

admin.database().ref('...the path where you want to write...').set("A transfer request was just made");

Подробнее см.Документ для Ссылка и База данных .

Вторая проблема связана с тем, что после выхода новой версии Firebase SDK для облачных функций версии 1.0.0Синтаксис изменился.Смотрите этот документ пункт .

Вы должны изменить свой код следующим образом:

exports.TransferTicket = functions.database.ref('/Transfer_Request/{pushID}').onWrite((change, context) => {

    const original = change.after.val();

    const from_ID = original.from_ID;
    console.log(from_ID);
    const to_email_ID = original.to_ID;
    console.log(to_email_ID);

    return admin.database().ref('...path...').set("A transfer request was just made")
    .catch(error => {
        console.log(error);
        //...
    });

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