Как поместить новые данные в базу данных реального времени с помощью облачных функций? - PullRequest
0 голосов
/ 01 мая 2019

Как я могу использовать функцию Cloud для изменения данных в реальном времени в моей базе данных firebase при каждом вызове функции?У меня есть ячейка данных «Точки», и я хочу изменить значение «Точки» на случайное число от 1 до 10 при каждом развертывании функции.Я действительно новичок в использовании Firebase, поэтому я не знаю, с чего начать.Я просмотрел большую часть предоставленной документации, но ни одна из них не помогла.Я перепробовал несколько вещей, но с треском провалился.Пожалуйста, помогите

Спасибо,

Это то, что я пытался ...

exports.userVerification = functions.database.ref('Points')

var ref = database().ref('Points')

var number = (Math.floor(Math.random() * 10) + 1)*10

ref.update(number)

1 Ответ

1 голос
/ 02 мая 2019

В документации вы найдете все подробности о том, как вызвать функцию облака через Pub / Sub.

Вы также найдете очень простой пример "Hello World" в официальном примере Cloud Functions: https://github.com/firebase/functions-samples/tree/master/quickstarts/pubsub-helloworld

Ваша облачная функция будет выглядеть следующим образом:

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

exports.randomNbr = functions.pubsub.topic('topic-name').onPublish((message) => {

      var ref = admin.database().ref();

      var number = Math.floor(Math.random() * (10)) + 1;

      return ref.update({ Points: number });

});

Обратите внимание, что мы возвращаем Обещание, возвращенное асинхронным методом update(), чтобы указать платформе, что работа завершена. Я бы посоветовал вам посмотреть 3 видео о "Обещаниях JavaScript" из серии видеороликов Firebase: https://firebase.google.com/docs/functions/video-series/

Обратите внимание, что вы не можете просто сделать ref.update(number);: вы получите ошибку (Error: Reference.update failed: First argument must be an object containing the children to replace.)

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