การใช้ setData ร่วมกับ merge: true ใน FlutterFire API ใหม่

Sep 10 2020

ฉันกำลังอัปเดตโค้ด Flutter เดิมด้วย FlutterFire API ใหม่ ฉันใช้setDataกับmerge: trueหนึ่งในฟังก์ชันของฉันเพื่ออัปเดตช่องเอกสารบางช่องที่บันทึกไว้ในแผนที่ ฉันเปลี่ยนsetDataเป็นsetแต่ได้รับข้อผิดพลาดเกี่ยวกับปลั๊กอิน FlutterFire ใหม่ที่ไม่ได้กำหนด "ผสาน" ไว้ ฉันพบในเอกสารการย้ายข้อมูลนั้น

setData / set รองรับ SetOptions เพื่อผสานข้อมูล / เขตข้อมูล (ก่อนหน้านี้ยอมรับแผนที่)

เอกสารอ้างอิงยังกล่าวว่า:

/// If [SetOptions] are provided, the data will be merged into an existing


/// document instead of overwriting.
  Future<void> set(Map<String, dynamic> data, [SetOptions options]) {
    assert(data != null);
    return _delegate.set(
        _CodecUtility.replaceValueWithDelegatesInMap(data), options);
  }

ในรหัสเดิมของฉันฉันกำลังบันทึกค่าใหม่ในการMap<String, dynamic>เรียกchangedvaluesแล้วฉันใช้setData(changedValues, merge:true)

ดังนั้นฉันจะให้ SetOptions ได้อย่างไรเพื่อให้แน่ใจว่าการผสานเป็นจริงและมีการอัปเดตเฉพาะฟิลด์ในค่าที่เปลี่ยนแปลงในเอกสารเท่านั้น

คำตอบ

12 PeterHaddad Sep 10 2020 at 16:57

คุณต้องทำสิ่งต่อไปนี้:

set({"name" : "akbarB"}, SetOptions(merge : true))