2017-10-08 7 views
0

제품 목록이있는 간단한 응용 프로그램입니다. 제품은 Firebase Firestore에 저장됩니다. 제품 목록을 다운로드하고 사용자에게 일부 데이터를 업데이트 할 수있는 권한을 부여하고 싶습니다.Flutter Firestore - 문서 스냅 샷 찾기 id

그래서 제품 목록을 준비 :

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(), 
    ); 
    }, 
); 
} 

을 내 제품 객체에 문서 스냅 샷을 직렬화 :

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]; 
    } 
} 

이제 때 사용자가 내가에서 제품 문서를 업데이트 할 몇 가지가 ProductCell와 상호 작용하기 연결된 Firestore는 ID가 없으므로 적절한 Firestore 참조를 만들 수 없습니다.

어떻게해야합니까?

답변

1

이슈 # 12471가 해결되기 때문에, 문서 객체에서 문서 ID를 얻을 수 있습니다.

print(document.documentID)