如果不存在(同步),在谷歌firestore中添加数据

如果不存在(同步),在谷歌firestore中添加数据

问题描述:

我想列出哈希标签集合中的新哈希标签(例如#love,#goodMorning)(如果它们不存在) 此外,应用程序还支持任何登录用户可以写入数据库。如果不存在(同步),在谷歌firestore中添加数据

如果只有一个用户有权访问此文档,则可以使用以下代码。

hashtags=["one","two","three"]; 
hashtags.forEach(hashtagToAdd => { 
    this.afs.collection("hashtags").ref 
    .where("name", "==", hashtagToAdd) 
    .limit(1) 
    .get() 
    .then(result => { 
    if (result.empty) { 
     // code to add new hashtag e.g. here hashtagToAdd 
    } else { 
     console.log("hashtag is already present"); 
    } 
    }) 
    .catch(error => { 
    console.log("error aayo che", error); 
    }); 
} 

在我的情况,因为多个用户可以访问和写入它。 现在,如果在取得标签之前没有找到这样的标签,但是在添加标签之前,另一个用户如果已经添加了相同的标签,那么可以存在重复的标签。 如何避免这种情况?还有没有更好的方法来做到这一点的新标签列表?

我找到了解决方案。它可以通过将数据存储在静态位置来轻松完成。 例如 存储这些信息...

hashtags=["one","two","three"]; 

我会用这样的公司的FireStore结构:

/hashtags/one/{name:one} 
/hashtags/two/{name:two} 
/hashtags/three/{name:three}