firebase 没有为类型“Object”定义运算符“[]”,从一个集合获取数据并将其添加到另一个集合

qxgroojn  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(111)

在我的firestore中,我创建了一个creators集合,并且正在尝试创建一个编辑配置文件集合。我想获取creators集合中一个字段的值,并将其添加到编辑配置文件集合中。经过一些研究,我找到了一种方法来实现这一点,但是当我想设置字段的值时,我得到了上面的错误。我真的很感谢您的帮助。以下是代码

editProfile()async{
    CollectionReference creatorCollection = FirebaseFirestore.instance.collection('Creators');
    CollectionReference editProfileCollection = FirebaseFirestore.instance.collection('EditProfile');
    String profileImageUrl =await uploadProfilePictureToStorage(_image);
    String profilePicUrl =await uploadProfilePictureToStorage(_profilePic);
    creatorCollection.where("fullName", isEqualTo: widget.enterName).get().then((querySnapshot) {
      querySnapshot.docs.forEach((result) {
        final DocumentSnapshot creatorDoc = result;
        editProfileCollection.doc(FirebaseAuth.instance.currentUser!.uid).set({
        'FullName': creatorDoc.data()?["fullName"],
        'EditedFullName': _name,
        'location': _location,
        'links': _linked,
        'contact':_contact,
        'dob':_dob,
        'uid':FirebaseAuth.instance.currentUser!.uid,
        'likes':[],
        'Headers': profileImageUrl,
        'ProfilePic':profilePicUrl
        }).whenComplete((){
          Navigator.pop(context);
        });
      });
    });

我想从creators集合中得到的是全名。如果有更好的方法来获得值,那也会很感激。顺便说一句,这里是集合

os8fio9y

os8fio9y1#

您可以使用.get或像使用'FullName': (creatorDoc.data() as Map?)?["fullName"],一样使用as Map?

'FullName': creatorDoc.get("fullName"),

相关问题