javascript - 如何检查值是否存在,然后使用 JavaScript 在 firebase 中添加或更新值?
问题描述
我有一个应用程序,用户可以在其中登录并添加他们去过的旅行。我的 fb db 结构是这样的
{
"users": {
"randomId": {
"Place1": {
"name": "Place1",
"somedata": "oianoiasnfianafs",
"moredata": "asdasdadasdas",
"THISKEYIWANTTOUPDATE": [
{
"data": "asasfas"
}
]
}
}
}
}
您可以在上面看到我要更新的密钥。但我的问题是,我首先需要检查数据库中是否已经存在 Place1?我该如何做到这一点?我知道我可以打电话set
,但不确定这是否是最好的选择?我也知道更新,但我想要下面这个伪代码的逻辑
if (place1) {
// call update()
} else {
// cat set()
}
我不确定如何做这if(place1)
部分?如果在firebase中检查它是否存在是最佳实践?
解决方案
您可以尝试使用Object.keys(obj)
来获取对象的属性。
假设 userObj 是
"users": {
"randomId": {
"Place1": {
"name": "Place1",
"somedata": "oianoiasnfianafs",
"moredata": "asdasdadasdas",
"THISKEYIWANTTOUPDATE": [
{
"data": "asasfas"
},
]
},
}
}
你已经提到它可能是多重PlaceN
的randomID
,那么我建议模式可能是:
多种情况,有Place2
且值为Place1
空:
"randomId": {
"Place1": {
},
"Place2": {
"name": "Place2",
"somedata": "oianoiasnfianafs",
"moredata": "asdasdadasdas",
"THISKEYIWANTTOUPDATE": [
{
"data": "asasfas"
},
]
},
}
和检查功能:
checkPlace1ExistOrNot=(userObj)=>{
let tempRandomId = userObj[Object.keys(userObj)[0]] //It should be vale of "RandomId"
if(tempRandomId[Object.keys(tempRandomId)[0]])
{
return true // users.randomId.Place1 is exist
}
else
{
return false // users.randomId.Place1 is not exist
}
}
推荐阅读
- android - GestureListenerManagerImpl 为 null 使 webview 崩溃
- amazon-s3 - 云端中特定于语言的 404 错误页面
- node.js - sails.js 从集合水线中删除所有成员
- solr - 为什么从 Banana Solr Dashboard 生成多页 PDF 会变得模糊 Pixelwise
- javascript - 对多个属性的数组进行排序,然后根据前一项更新属性
- java - 如何让我的 Spring Boot API 返回 MySQL 日期值的 UTC 时间而不是“2018-08-01T04:00:00Z”?
- r - 是否有一个 dplyr 函数来确定组内最常遇到的分类值?
- python - 如何从 bin 中分配整数值
- wordpress - 添加异步属性
- java - 在 android 中使用允许的字符验证 EditText 输入