javascript - Firebase Node.js 本地测试凭证与功能
问题描述
下面的所有代码都可以firebase deploy
在本地机器上运行,但在本地机器上运行时会抛出错误:
错误:通过“凭据”属性提供给 initializeApp() 的凭据实现未能获取有效的 Google OAuth2 访问令牌,并出现以下错误:“获取访问令牌时出错:发出请求时出错:getaddrinfo ENOTFOUND metadata.google.internal。错误代码:ENOTFOUND”。
如何更改以下配置,使其在本地测试环境和部署后的 Firebase 中工作?
foo.js在本地和 firebase 上工作
getUsersFunction在 firebase 上工作,但不能在本地工作firebase emulators:start --only=functions
我设置了两个firebase端点并在本地运行它们:
firebase emulators:start --only=functions
index.js
"use strict";
const fooFunction = require("./foo");
const getUsersFunction = require("./getUsers");
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
exports.fooFunction = functions.https.onRequest((req, res) => {
fooFunction.handler(req, res);
});
exports.getUsersFunction = functions.https.onRequest((req, res) => {
getUsersFunction.handler(req, res, admin);
});
foo.js
exports.handler = function (req, res, database) {
res.send("foo ran successfully");
};
getUsersFunction.js
exports.handler = function (ref, res, admin) {
admin
.auth()
.listUsers(1000)
.then(function (listUsersResult) {
console.log(listUsersResult);
res.send("done");
return null;
})
.catch(function (error) {
console.log("Error listing users:", error);
});
};
解决方案
我刚刚检查了 Firebase 日志并注意到了这一点:
未配置结算帐号。外部网络无法访问,配额受到严格限制。配置结算帐户以删除这些限制
代码按原样很好 - 错误是由于我的帐户限制造成的。我发布这个是希望它可以避免其他开发人员浪费我所做的时间。
推荐阅读
- reinforcement-learning - RLLIB 强化学习推车杆无法收敛/永远占用
- python-3.x - Bootstrap 5卡页脚不停留在页面末尾
- excel - 如果有一个函数来计算一个单元格是空白还是非空白,这取决于它是否位于日期范围内的单元格中?
- python - SyntaxError:解析时出现意外的 EOF
- pivot - 在 Snowflake 中从表中取消嵌套
- javascript - 为什么我无法在 useEffect 中使用 Okta 挂钩?(反应)
- node.js - 为什么我的模板同时运行 2 个脚本在节点中失败?
- php - 为什么我在 Laravel 护照中的 Auth check 在尝试注销时总是返回 false,即使我可以成功注册?
- reactjs - 如何在 OpenWeatherMap 中使用 Leaflet?
- python - 验证准确度和验证损失开始迅速下降,然后随着 CNN 和批量归一化开始迅速增加