Flartter Dart with Firestore, Как получить ссылочный документ из одной коллекции? - PullRequest
0 голосов
/ 18 февраля 2020

Я создал две коллекции следующим образом: users - documentId (uid from auth) - поля и и sub collection (местоположения)

возможности - (автоматически сгенерированный идентификатор документа) - Fields (Одно из полей locationDocumentId из коллекции выше)

Я получаю возможности в виде потока, в котором я создал карту в классе Opportunity.
Я хотел бы иметь ссылку на объект Location в классе Opportunity и заполнять объект при получении возможностей.

Я очень новичок в Firestore и Flutter и застрял здесь.

Пожалуйста, посоветуйте, как мне это сделать sh.

Спасибо.

Код чтобы получить возможности

  // ALL Opportunities
  Stream<List<Opportunity>> get opportunities {
    return _oppRef
        .orderBy('lastUpdated', descending: true)
        .snapshots()
        .map(_allOpportunitiesFromSnapshot);
  }

  List<Opportunity> _allOpportunitiesFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc) {
      return Opportunity.fromMap(doc.data, doc.documentID);
      //HERE I WANTED TO ADD CODE TO GET LOCATION AS
      //var opp = Opportunity.fromMap(doc.data, doc.documentID);
      // opp.location ???
    }).toList();
  }


// 
Future<DocumentSnapshot> getLocation(
      String locationId, String createdBy) async {
    return await _docRef
        .document(createdBy)
        .collection('locations')
        .document(locationId)
        .get();
  }

1 Ответ

0 голосов
/ 21 февраля 2020

Я провел некоторое исследование, и я хотел бы закрыть это, так как мне действительно нужно изменить дизайн моей модели данных. Я пришел из проектирования реляционных баз данных с большей нормализацией. Я учился, что это не лучшая практика делать это с No SQL (я также совершенно новичок ie с No SQL). Спасибо Рено за посвящение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...