如何使用 Cloud Functions (Typescript) 在 Firebase 实时数据库中的 .ref(/path) 之外创建新的父节点?
Posted
技术标签:
【中文标题】如何使用 Cloud Functions (Typescript) 在 Firebase 实时数据库中的 .ref(/path) 之外创建新的父节点?【英文标题】:How to create a new parent node outside the .ref(/path) in Firebase Realtime Database using Cloud Functions (Typescript)? 【发布时间】:2020-07-11 15:38:29 【问题描述】:所以基本上我希望我的 Cloud Functions 在“代理”中有新节点时创建一个名为“Civil”的新父节点。 这是我尝试过的代码:
import * as functions from 'firebase-functions';
export const addCivilData = functions.database
.ref('/Agent/AgentID')
.onCreate((snapshot, context) =>
const userData = snapshot.val()
const newUsername = userData.username
const defCivilStatus: string = "new"
return snapshot.ref.parent?.child('Civil').child(`$newUsername`).update(`$defCivilStatus`)
)
那个? VSCODE 自动生成 parent 并显示一些关于鼠标悬停的规则。
如果我删除那个“?”它在snapshot.ref.parent
上给出了红色下划线。
我想创建一个父节点“Civil”和获取用户名的子节点,并将其值设置为 defCivilStatus。 请帮忙
编辑: 其他错误截图
【问题讨论】:
评论不用于扩展讨论;这个对话是moved to chat。 【参考方案1】:你可以试试这个:
const functions = require('firebase-functions');
// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.addCivilData = functions.database
.ref('/Agent/AgentID')
.onCreate((snapshot, context) =>
const userData = snapshot.val();
console.log('userData', userData);
const newUsername = userData.username;
console.log('newUsername', newUsername);
const defCivilStatus = "new";
return snapshot.ref.parent.parent.child('Civil').child(`$newUsername`).set(`$defCivilStatus`);
);
并遵循 firebase 功能。日志
使用!
符号是IDE 在return snapshot.ref....
行显示任何错误,如下面的代码所示:
return snapshot.ref.parent!.parent!.child('Civil').child(`$newUsername`).set(`$defCivilStatus`);
【讨论】:
我会尽快让你知道输出。忙碌的自动取款机。但是你能解释一下这如何解决最后一行的父问题吗?我希望父母不是空的。但问题是否已解决? 问题不在于 ref.parent。问题是更新功能。在这一行。更新失败 我在返回线之前有一个console.log(" ")
。它有效,但返回语句是错误的。所以返回语句可能是错误。
我可以用exports const addCivilData
代替exports.addCivilData
吗??
文档中没有这种用法以上是关于如何使用 Cloud Functions (Typescript) 在 Firebase 实时数据库中的 .ref(/path) 之外创建新的父节点?的主要内容,如果未能解决你的问题,请参考以下文章