如何使用条件条件更新字段当前用户=密钥(用户ID)触发和闪动

时间:2020-04-20 16:54:13

标签: flutter google-cloud-firestore

您好,我使用的是flutter和firebase,所以我在配置名称为Institutes的地方有firestore,在文档中有Institutes的名称,我的字段中有个人资料数据....否,我需要根据当前用户的情况更新某些字段,字段中的关键用户ID *

Screenshot

onPressed: ()async {
    final FirebaseAuth auth = FirebaseAuth.instance;
    final user = await auth.currentUser();
    final iduser = user.uid;
    final emailuser = user.email;
    final snapshot = await Firestore.instance.collection("Institute")
        .document(_Institute_name.text).get();
    if (snapshot.exists) {
        print(this name is existd);
    } else {
        await  DataBaseService(email: emailuser,
        uid: iduser,
        Document: _Institute_name.text)
            .CreateCollectionInofwithImage(
        _Institute_name.text, Institute_address.text,
        int.parse(Institute_phone.text), _image).then((isdone) {
            setState(() {
                Institute_address.clear();
                Institute_phone.clear();
                _Institute_name.clear();
                _image = null;
            });
        });    
    }
}

1 个答案:

答案 0 :(得分:0)

好的,试试这个

onPressed: ()async {
    final FirebaseAuth auth = FirebaseAuth.instance;
    final user = await auth.currentUser();
    final iduser = user.uid;
    final emailuser = user.email;
     QuerySnapshot snapshot = await Firestore.instance
      .collection('Institute')
      .where('user id', isEqualTo: iduser)//I think this is your field name from the 
//picture it looks like theres a space in it
      .getDocuments();
  if (snapshot != null) {
    Map<String,dynamic> document = snapshot.documents[0].data;
    //Then you would reference this by document['fieldName']

    } else {
        await  DataBaseService(email: emailuser,
        uid: iduser,
        Document: _Institute_name.text)
            .CreateCollectionInofwithImage(
        _Institute_name.text, Institute_address.text,
        int.parse(Institute_phone.text), _image).then((isdone) {
            setState(() {
                Institute_address.clear();
                Institute_phone.clear();
                _Institute_name.clear();
                _image = null;
            });
        });    
    }
}