2017-10-08 2 views
0

Ich habe eine einfache App mit einer Liste von Produkten. Produkte werden in Firebase Firestore gespeichert. Ich möchte die Produktliste herunterladen und dem Benutzer die Möglichkeit geben, einige Daten zu aktualisieren.Flutter Firestore - Finden Sie `Document Snapshot` ID

So bereite ich Liste mit Produkten:

Widget _buildProductsList() { 
    return new StreamBuilder(
    stream: Firestore.instance 
     .collection('products') 
     .snapshots, 
    builder: (context, snapshot) { 
     if (!snapshot.hasData) return new Text("Loading..."); 

     return new ListView(
     children: snapshot.data.documents.map((document) { 
      Product product = new Product(document.data); 
      _ProductCell cell = new _ProductCell(); 
      cell.product = product; 
      return cell; 
     }).toList(), 
    ); 
    }, 
); 
} 

serialisiert I Dokumenten Snapshot zu meinem Produkt Objekt:

class Product { 

    static const NAME_KEY = 'name'; 
    static const DESC_KEY = 'desc'; 
    static const PHOTO_URL_KEY = 'photoUrl'; 
    static const AUTHOR_ID_KEY = 'authorId'; 
    static const CREATED_AT_KEY = 'createdAt'; 

    String name; 
    String description; 
    String photoUrl; 
    String authorId; 
    int createdAt; 

    Product(Map<String, dynamic> json) { 
     name = json[NAME_KEY]; 
     description = json[DESC_KEY]; 
     photoUrl = json[PHOTO_URL_KEY]; 
     authorId = json[AUTHOR_ID_KEY]; 
     createdAt = json[createdAt]; 
    } 
} 

Nun, wenn der Benutzer einige mit ProductCell machen interagieren I Produkt Dokument aktualisieren möchten in Firestore, mit dem ich verlinkt bin, aber ich habe keine ID, daher ist es unmöglich, eine korrekte Firestore-Referenz zu erstellen.

Wie erreichen?

Antwort

1

Da die Ausgabe # 12471 behoben ist, können Sie das Dokument-ID aus dem Dokument-Objekt erhalten.

print(document.documentID) 
Verwandte Themen