typescript - Firebase admin.database().ref().set() 在 Firebase 函数中失败
问题描述
如何从 Firebase 函数写入实时数据库?为什么该函数在到达实时数据库时总是默默地失败?
似乎我可以获得对数据库的引用,但我无法保存任何值。
try {
functions.logger.log(`ref: ${JSON.stringify(admin.database().ref(collectionName))}`);
await admin.database().ref(collectionName).set(value)
.then(() => {
functions.logger.log(`value written`);
// Success ... do stuff
})
.catch(error => {
functions.logger.log(`Catch #2: ${JSON.stringify(error)}`);
res.status(502).send(error);
});
} catch (error) {
functions.logger.log(`Catch: ${JSON.stringify(error)}`);
res.status(401).send(`Having troublle writing`);
}
输出:
ref: "https://myrealtimedb.firebaseio.com/collectionName"
Catch: {}
Function execution .... finished with status code: 401
我的函数可以成功地从 Cloud Firestore 创建和读取值,但在处理实时数据库交互时遇到了问题。
设置功能:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import * as express from 'express';
admin.initializeApp();
const main = express();
const appRoutes = new routes();
main.use('/api/', appRoutes.setupRoutes());
main.use(bodyParser.json());
main.use(bodyParser.urlencoded({ extended: false }));
export const api = functions.https.onRequest(main);
(我设置了许多其他功能appRoutes
,它们都可以在 firestore 上正常工作。)
解决方案
推荐阅读
- c# - Asp.net MVC 按钮应该打开文件对话框
- git - 将 TFS-workitem 链接到外部 git
- python - 为什么复杂网格阵列上的 numpy.exp 给出错误的实部?
- bash - 在 bash 循环中访问文件名时出错
- c# - HttpClient.BaseAddress 的目的是什么,为什么我不能在第一次请求后更改它
- html - 烧瓶:表单验证错误
- java - 是否可以缓存运行时编译的类?
- java - JUnit 5 Collection 类型参数导致“@ParameterizedTest”错误
- angular - 如何在 Angular4 中使用行为主题
- facebook - 尝试使用 Facebook 管理群组时出错