Firebase 如何使用flatter更新云firestore上文档的字段?

Firebase 如何使用flatter更新云firestore上文档的字段?,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我试图更新我的firestore数据库字段 Future<void> approveJob(String categoryId) { 为了更新文档中的字段,您只需按照文档进行操作 关于如何获取documentID,您可以按照下面的描述进行操作 还要记住,你可以 让我知道这是否有用。==2020年12月=== 在Flatter中更新Firestore文档有两种方法: set()-设置文档上的数据,覆盖任何现有数据。如果文档尚不存在,将创建该文档 update()-更新文档上的数据

我试图更新我的firestore数据库字段

  Future<void> approveJob(String categoryId) {

为了更新文档中的字段,您只需按照文档进行操作

关于如何获取documentID,您可以按照下面的描述进行操作

还要记住,你可以

让我知道这是否有用。

==2020年12月===

在Flatter中更新Firestore文档有两种方法:

  • set()
    -设置文档上的数据,覆盖任何现有数据。如果文档尚不存在,将创建该文档
  • update()
    -更新文档上的数据。数据将与任何现有文档数据合并。如果尚未存在文档,则更新将失败
  • 因此,要更新现有文档中的确切字段,可以使用

    FirebaseFirestore.instance.collection('collection_name').doc('document_id').update({'field_name': 'Some new data'});
    

    首先,您需要确定并定位要修改的字段

    final code = Code.fromSnapshot(document);
    
    FirebaseFirestore.instance.collection('collection_Name').doc('doc_Name').collection('collection_Name').doc(code.documentId).update({'redeem': true});
    
    在本例中,
    code.documentId
    code是包含快照的实例。通过使用它,可以访问“标识符”文档ID;然后将字段
    兑换
    更改为true,

    • 要更新文档中的值,请执行以下操作:

      var collection=FirebaseFirestore.instance.collection('collection');
      收集
      .doc(“doc\u id”)
      .update({'key':'value'})//打印('Success'))
      .catchError((error)=>打印('Failed:$error');
      
    • 更新文档中的嵌套值

      var collection=FirebaseFirestore.instance.collection('collection');
      收集
      .doc(“doc\u id”)
      .update({'key.foo.bar':'nested_value'})//打印('Success'))
      .catchError((error)=>打印('Failed:$error');
      
    • 向现有文档添加新值

      var collection=FirebaseFirestore.instance.collection('collection');
      收集
      .doc(“doc\u id”)
      
      .set(yourData,SetOptions(merge:true));//是的,这是可能的,您需要做的是每次保存一个新文档时,向其中添加一个包含docId的id字段,然后您可以使用此id执行其他操作,如更新docok。谢谢这不是更新字段的方式吗<代码>v.documents[0]。数据。更新('isApproved',(bool)=>true,如果存在:()=>true)我对此不确定,但以下是我如何更新Firestore.instance.collection('collection').document(docId.).updateData({
      你的答案与Flatter有什么关系?
      final code = Code.fromSnapshot(document);
      
      FirebaseFirestore.instance.collection('collection_Name').doc('doc_Name').collection('collection_Name').doc(code.documentId).update({'redeem': true});