Yeni FlutterFire API'de merge: true ile setData kullanma

Sep 10 2020

Eski flutter kodumu yeni FlutterFire API ile güncelliyorum. Bir Harita'ya kaydedilen bazı belge alanlarını güncellemek için işlevlerimden birinde bir setDataile kullanıyorum merge: true. Ben değişiklik yapmak setDataiçin set, ama "birleştirme" tanımlı olmadığından yeni FlutterFire eklenti ile bir hata alıyorum. Taşıma belgelerinde şunu buldum:

setData / set artık verileri / alanları birleştirmek için SetOptions'ı destekliyor (daha önce bu bir Haritayı kabul ediyordu)

Belge referansı ayrıca şunları söylüyor:

/// 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);
  }

Orijinal kodumda, yeni değerleri Map<String, dynamic>çağrılana kaydediyorum changedvaluesve sonra kullanıyorumsetData(changedValues, merge:true)

Öyleyse, birleştirme işleminin doğru olduğundan ve belgede yalnızca değiştirilen Değerlerdeki alanların güncellendiğinden emin olmak için SetOptions'ı nasıl sağlayabilirim?

Yanıtlar

12 PeterHaddad Sep 10 2020 at 16:57

Aşağıdakileri yapmanız gerekir:

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