Firebase Blaze计划是否有火花计划免费配额?
我想将Firebase与谷歌云平台一起使用,但仍希望拥有托管免费限制.我不关心其他服务,因为我不使用它们.
我有一个firebase云函数,它将在正常运行的HTTP请求上调用。
现在,我想从JSON文件中读取数据以获取某些业务逻辑。以下是我尝试读取JSON文件的2种方法:
选项#1)将JSON文件保存在我的nodejs项目的“ public”目录中并进行部署。得到了一个我正在使用的托管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 …Run Code Online (Sandbox Code Playgroud)node.js google-cloud-storage firebase google-cloud-functions firebase-storage
我正在尝试创建我的第一个 Google Home Action,就像我的 Amazon Alexa 技能一样。这个动作的工作方式是,你执行一个意图,然后在我的代码中调用一个函数。调用该函数时,它会向外部 API 发送 GET 以提取一些数据。
现在,当我在本地使用:firebase serve --only functions和ngrok. 这些将允许我在 API.AI 上测试该功能并且它工作正常。
但是当我决定使用: 将firebase deploy --only functions它部署到 firebase 时,它根本不起作用并抛出此错误:
error: { RequestError: Error: getaddrinfo EAI_AGAIN newsapi.org:443
at new RequestError (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/user_code/node_modules/request/request.js:188:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at Request.onRequestError (/user_code/node_modules/request/request.js:884:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at TLSSocket.socketErrorListener (_http_client.js:310:9)
at emitOne (events.js:96:13)
at TLSSocket.emit (events.js:188:7)
at connectErrorNT (net.js:1020:8) …Run Code Online (Sandbox Code Playgroud) 我正在尝试调用 CoinMarketCap 的公共 API,但它总是失败并显示以下错误:
error occured Error: getaddrinfo ENOTFOUND api.coinmarketcap.com api.coinmarketcap.com:443
Run Code Online (Sandbox Code Playgroud)
当我从浏览器调用 URL 时,它会立即返回结果。代码非常简单:
const functions = require('firebase-functions');
const axios = require('axios');
exports.getBtcPrice = functions.https.onRequest((req, res) => {
axios.get('https://api.coinmarketcap.com/v1/ticker/bitcoin')
.then( (response) => {
console.log(response);
res.send("data received");
})
.catch((error) => {
console.log(error);
res.send("error occured "+ error)
});
});
Run Code Online (Sandbox Code Playgroud)