Хобрук: Ваш путь к мастерству в программировании

Как получить базу данных в реальном времени в Firebase с помощью облачной функции?

Я создал проект Firebase и добавил данные в базу данных в реальном времени? Я также создал облачные функции с помощью консоли. Это мой следующий код

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

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

exports.addMessage = functions.https.onRequest(async (req, res) => {

 const snapshott = await admin.database().ref('/messages').push({"original":"ZXz"});

 res.send("assasin")
});
exports.getMessage = functions.https.onRequest(async (req, res) => {

    const snapshott = await admin.database().ref('/messages').get();

    res.send(snapshott)
});

Функция addMessage работает нормально, но функция getMessage выдает ошибку.

Это следующая ошибка

TypeError: admin.database(...).ref(...).get is not a function
    at exports.addMessage.functions.https.onRequest (/srv/index.js:15:60)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)

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


Ответы:


1

Как вы увидите в документе, get() метод для базы данных реального времени Reference. С другой стороны, Firestore, другая база данных NoSQL, предлагаемая Firebase, имеет get(). Вы, вероятно, смешиваете две службы базы данных :-)

Чтобы прочитать узел в базе данных Realtime, вам необходимо использовать once().

Итак, в вашем случае вы бы сделали следующее:

exports.getMessage = functions.https.onRequest(async (req, res) => {

    const snapshott = await admin.database().ref('/messages').once('value');

    res.send(snapshott);

});

Обратите внимание на два дополнительных момента:

  1. Вы также можете использовать метод on() для чтения node, но этот метод обычно не используется в облачных функциях, поскольку он устанавливает прослушиватель, который постоянно "прослушивает изменения данных в определенном месте".
  2. Вам следует управлять ошибками в своей облачной функции, см. Это официальное видео: https://firebase.google.com/docs/functions/video-series#learn-javascript-promises-pt1-with-http-triggers-in-cloud-functions
21.09.2019
  • этот метод не адаптирован к облачным функциям - ›этот метод обычно не используется в облачных функциях. 21.09.2019
  • Новые материалы

    Понимание дженериков в TypeScript: подробное руководство
    Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..