当我尝试用setDoc()更新现有数据时,我尝试通过在防火墙中的现有数据中添加新字段来更新数据,当我尝试用setDoc()进行更新时,所有现有的数据都被删除了,并且只有新更新了一个二叠纪才能将数据更新到同一个文档中。

有人能指导我如何在不丢失现有数据的情况下添加新的字段。
这是我的setDoc的主播
const updateUser = async(key, value) => {
await addDoc(doc(db,'users',user.uid), { [key]: value })
};我试着添加一个新的领域。如何添加新字段,我也尝试了如下
const updateUser = async(key,value)=>{
const updateRef = doc(db, "users",value);
await updateDoc(updateRef, {
[key]: true
});
}这是我尝试添加的新字段

发布于 2021-12-01 20:17:41
您可以从防火墙库导入firestore。
import firestore from '@react-native-firebase/firestore';然后,您可以获得所需的文档引用。
const docRef = firestore().collection('Users').doc('ABC')之后,您可以通过方法update()更新文档。
docRef
.update({
age: 31,
})
.then(() => {
console.log('User updated!');
});在本文档https://rnfirebase.io/firestore/usage中可以找到有关使用防火墙的详细信息。
发布于 2021-12-01 20:05:09
您需要设置选项merge.
火源9+
function updateData(collPath, data) {
setDoc(doc(db, collPath, data.id), data, { merge: true})
}火力基地8-
function updateData(collPath, data) {
db.collection(collPath).doc(data.id).set(data, { merge: true })
}在这两个库中都可以使用函数updateDoc()或v8 ...doc().update()。
https://stackoverflow.com/questions/70190533
复制相似问题