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

У меня есть облачная функция firebase, которая будет вызываться по HTTP-запросу, который работает нормально.

Теперь я хочу прочитать данные из файла JSON для некоторой бизнес-логики. Ниже приведены два способа чтения файла JSON:

Вариант № 1) Сохранил файл JSON в директории public в моем проекте nodejs и развернул. Получил URL хостинга, который я использую, как показано ниже. Но выдает ошибку: «Ошибка: getaddrinfo ENOTFOUND ...»

Вариант № 2) Загрузил файл JSON в облачное хранилище Firebase. Не нашел ни одного примера, чтобы попробовать это. Завершается приведенным ниже кодом:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const Firestore = require('@google-cloud/firestore');
const firestore = new Firestore();
const http = require('http');
const url = require('url');

// Option #2 required variables
var storage = require('@google-cloud/storage');
const gcs = storage({projectId: "<Project ID>"});
const bucket = gcs.bucket("<bucket-name>");
const file = bucket.file("<filename.json>")

// HTTP Trigger
exports.functionName = functions.https.onRequest((req, res) => {
 var request = require('request'); 
 var paramValue = req.body.queryParam;
 console.log(paramValue);

// Option #1 - Using hosted URL
var hostingURL = "https://xxxxxxxx.firebaseapp.com/filename.json";
 console.log(hostingURL);
 request({
        url:hostingURL,
        method: 'POST', 
        json:{ key: 'value' } },function(error, response, data) {
 });
  
// Option #2 - Ended up here. Want to read from cloud storage bucket.
console.log(file);

});

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Если ваш файл находится в Firebase Could Storage, вы можете использовать этот подход:

const admin = require('firebase-admin');
admin.storage().bucket().file("yourDirForFile/yourFile.json")
    .download(function (err, contents) {
        if (!err) {
            var jsObject = JSON.parse(contents.toString('utf8'))
        }
});

переменная jsObject, которую вы можете использовать по своему усмотрению. Пока в памяти.

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

Вы можете поместить файл .json в ту же папку, где находится ваш index.js. Тогда вы можете сделать следующее:

const config = require('./config.json');
console.log(config.foo);

Имеется следующий файл config.json:

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