我目前正在执行的特定Firebase Cloud Function遇到麻烦。
简而言之,该功能应该查询“我的实时数据库”中的特定孩子。运行一些逻辑,并在需要时更新孩子的值。最后,该函数应将更改后的值更新回数据库。看起来足够简单和直接,但是我在将更新推回数据库时遇到了一些麻烦。
我的数据目前的结构如下:我有一个“用户”参考,其中存储了所有用户数据,然后将每个用户存储在一个推键中,如下所示 大家好,我是Firebase的新手,但是我很快就开始学习,到目前为止,到目前为止,它对它的功能一直非常满意。尽管我目前正在实施的特定Firebase Cloud Function遇到麻烦。
简而言之,该功能应该查询“我的实时数据库”中的特定孩子。运行一些逻辑,并在需要时更新孩子的值。最后,该函数应将更改后的值更新回数据库。看起来足够简单和直接,但是我在将更新推回数据库时遇到了一些麻烦。
我的数据目前的结构如下:我有一个“用户”参考,其中存储了所有用户数据,然后每个用户都存储在一个推键中,如下所示:
{
"Users" : {
"-LM2eHeUZ4gQJL78KkD7" : {
"closedRequests" : [ "EMPTY" ],
"firstName" : "LeBron",
"lastName" : "James",
"rejectedRequests" : [ "EMPTY" ]
},
"-LMiCuI_ORunlMCscBPL" : {
"closedRequests" : [ "EMPTY" ],
"firstName" : "Victory",
"lastName" : "Jackson"
}
}`
当我尝试对我的云功能中的数据库进行查询时:
ref.child('Users').orderByChild('userID').equalTo(req.body.data.snowAngelID).once('value')
我能够在运行snapShot.val()
方法返回并获得如下对象的情况下获得快照:
"-LM2eHeUZ4gQJL78KkD7" : {
"closedRequests" : [ "EMPTY" ],
"firstName" : "Buhle",
"lastName" : "Mwanza",
"rejectedRequests" : [ "EMPTY" ],
}
我显然不需要那里的-LM2eHeUZ4gQJL78KkD7
键,因为我想访问实际的原始数据。为此,我正在使用Object.keys()
方法跳过按键以获取真实数据。这是我遇到的第一个问题。有没有一种方法可以更改我的查询,使其仅在没有按键的情况下获取我的实际数据?我尝试添加一些通配符,例如ref.child('Users/{wildcard}')
,但是查询返回null
此外,当我尝试调用snapShot.ref.update(objectObject)
时,它不会更新正在数据库中处理的特定对象内的子值,而是将这些字段添加到对象的外面。 / p>
如果有人可以帮助我,我将不胜感激。提前非常感谢 消息输入
消息#功能