首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过本机响应将新的字段数据更新到现有文档,而不覆盖firebase-9中的现有数据

如何通过本机响应将新的字段数据更新到现有文档,而不覆盖firebase-9中的现有数据
EN

Stack Overflow用户
提问于 2021-12-01 20:01:31
回答 2查看 1.9K关注 0票数 1

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

有人能指导我如何在不丢失现有数据的情况下添加新的字段。

这是我的setDoc的主播

代码语言:javascript
复制
const updateUser = async(key, value) => {
  await addDoc(doc(db,'users',user.uid), { [key]: value })
};

我试着添加一个新的领域。如何添加新字段,我也尝试了如下

代码语言:javascript
复制
 const updateUser = async(key,value)=>{
    const updateRef = doc(db, "users",value);
    await updateDoc(updateRef, {
      [key]: true
    });
   }

这是我尝试添加的新字段

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-01 20:17:41

您可以从防火墙库导入firestore

代码语言:javascript
复制
import firestore from '@react-native-firebase/firestore';

然后,您可以获得所需的文档引用。

代码语言:javascript
复制
const docRef = firestore().collection('Users').doc('ABC')

之后,您可以通过方法update()更新文档。

代码语言:javascript
复制
  docRef
  .update({
    age: 31,
  })
  .then(() => {
    console.log('User updated!');
  });

在本文档https://rnfirebase.io/firestore/usage中可以找到有关使用防火墙的详细信息。

票数 4
EN

Stack Overflow用户

发布于 2021-12-01 20:05:09

您需要设置选项merge.

火源9+

代码语言:javascript
复制
function updateData(collPath, data) {
    setDoc(doc(db, collPath, data.id), data, { merge: true})
}

火力基地8-

代码语言:javascript
复制
function updateData(collPath, data) {
    db.collection(collPath).doc(data.id).set(data, { merge: true })
}

在这两个库中都可以使用函数updateDoc()或v8 ...doc().update()

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70190533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档