我正在制作一个简单的程序来登录任务,当有人更新字段时,我想仅使用更新的内容来更新文档,因此我制作了一个字符串生成器来创建参数:
function fireBaseUpdateStringMaker(update_field,update_val)
{
return '\''+update_field+'\''+' : '+'\''+update_val+'\''+','
}
它创建一个字段,如下所示:'update_field':'update_val'
如果我遵循 Firebase 的文档,直接在我的代码中使用它效果很好 db.collections('this_collection').doc('this_doc').update({ 'update_field' : 'update_val' })
但是如果我将其作为变量传递给更新,那么它就不起作用
var updater = 'update_field' : 'update_val' ;
db.collections('this_collection').doc('this_doc').update({ updater })
我看到使用平方符号提到的其他问题的答案,但在这里使用它会出现错误“':'预期”,不使用平方符号会在我的数据库中创建一个名为“updater”的新字段,内容为“'update_field': 'update_val'“。
是否有办法做到这一点,或者我应该在每次编辑文档时更新每个值?我对 NOSQL/Firebase 还很陌生,所以这对我来说仍然不太直观。任何帮助表示赞赏。谢谢。
最佳答案
您所做的并不是 Firestore API 的有效使用。您无法组成字段/值对的字符串 - 文档数据必须是 JavaScript 对象。您必须使用属性字段的名称及其关联值来填充 JavaScript 对象。
这应该有效:
db.collection('this_collection').doc('this_doc').update({
field: "value"
})
如果您想单独组合对象,请按照 JavaScript 中的常规操作进行操作:
const data = { field: "value" }
db.collection('this_collection').doc('this_doc').update(data)
关于javascript - 使用字符串对象的 Firebase 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60088623/