Dart Flatter和Firestore:如何从有状态小部件访问变量以创建新文档?

Dart Flatter和Firestore:如何从有状态小部件访问变量以创建新文档?,dart,google-cloud-firestore,flutter,Dart,Google Cloud Firestore,Flutter,我想使用无状态小部件中StatefulWidget的最后一个变量在Firestore中创建一个新文档 但我总是遇到同样的问题:在初始值设定项中只能访问静态成员 我的StatefulWidget代码: class UserProfile extends StatefulWidget { UserProfile({this.auth, this.onSignedOut, this.userID}); final BaseAuth auth; final VoidCallback onSi

我想使用无状态小部件中StatefulWidget的最后一个变量在Firestore中创建一个新文档

但我总是遇到同样的问题:在初始值设定项中只能访问静态成员

我的StatefulWidget代码:

class UserProfile extends StatefulWidget {
  UserProfile({this.auth, this.onSignedOut, this.userID});
  final BaseAuth auth;
  final VoidCallback onSignedOut; 
  final String userID;

   @override
     _UserProfileState createState() => new _UserProfileState();

}
class _UserProfilState extends State<UserProfile> {
  final DocumentReference userdocuments = 
    Firestore.instance.collection("Users").document(widget.userID); //Here i get the Error, because widget.userID
}
我的无状态小部件代码:

class UserProfile extends StatefulWidget {
  UserProfile({this.auth, this.onSignedOut, this.userID});
  final BaseAuth auth;
  final VoidCallback onSignedOut; 
  final String userID;

   @override
     _UserProfileState createState() => new _UserProfileState();

}
class _UserProfilState extends State<UserProfile> {
  final DocumentReference userdocuments = 
    Firestore.instance.collection("Users").document(widget.userID); //Here i get the Error, because widget.userID
}
class\u UserProfilState扩展状态{
最终文档参考用户文档=
Firestore.instance.collection(“Users”).document(widget.userID);//这里我得到了错误,因为widget.userID
}

我的问题是:如何使用StatefulWidget中的userID变量基于userID创建新文档。感谢我们的帮助

您可以在
initState
方法中获取值

class _UserProfilState extends State<UserProfile> {

DocumentReference userdocuments;

@override
 void initState() {
   userdocuments = 
   Firestore.instance.collection("Users").document(widget.userID);
   super.initState();
  }
}
class\u UserProfilState扩展状态{
文件参考文件;
@凌驾
void initState(){
用户文档=
Firestore.instance.collection(“用户”).document(widget.userID);
super.initState();
}
}