我正在尝试更新PITA非规范化的数据库结构。 我知道已经有关于如何检查文档是否存在的答案,即使文档非常清楚,但是我找不到任何可以检查文档是否存在于更新“ set”和“ where”上的内容。
首先我想在更新之前检查一个文档是否存在
vectorLayer.set("name", "myLayer");
map.on("click", function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) {
if (feature) {
console.log(layer.get("name") + " was clicked.");
}
});
});
有什么方法可以检查该文档是否存在,还是应该先阅读以了解该文档是否存在
const staffRef = db.collection("staff").doc(uid)
return staffRef.set({
employeeProfile: employeeProfile
}, {
merge: true
})...
第二我要检查多个文档的位置
const staffRef = db.collection("staff").doc(uid)
return staffRef.get()
.then((doc) => {
if (doc.exists) {
return staffRef.set({
employeeProfile: employeeProfile
}, {...
forEach之后是否应该阅读每个文档?
答案 0 :(得分:0)
第一答案:是的,对于单个文档,您必须首先使用get()
方法来确定该文档是否存在。
对于
DocumentSnapshot
,它指向不存在的文档, 任何数据访问都将返回“未定义”。您可以使用exists
属性以明确验证文档的存在。
第二回答:否,对于Query
的结果,您无需检查每个文档:通过循环{获得的每个doc
{1}}确实存在。
一个
QuerySnapshot
包含零个或多个querySnapshot.forEach()
代表查询结果的对象。