到目前为止,每当我需要在Widget中使用条件语句时,我已经完成了以下操作(使用Center和Containers作为简化的虚拟示例):
new Center(
child: condition == true ? new Container() : new Container()
)
Run Code Online (Sandbox Code Playgroud)
虽然当我尝试使用if/else语句时,它会导致死代码警告:
new Center(
child:
if(condition == true){
new Container();
}else{
new Container();
}
)
Run Code Online (Sandbox Code Playgroud)
有趣的是,我尝试使用switch case语句,它给了我相同的警告,因此我无法运行代码.我做错了什么或者是不是因为有死代码而无法使用if/else或switch语句而没有颤抖?
我想使用抽屉导航到不同的路线,但是如果我已经在该路线上,我每次点击它时都不想打开路线的新实例,而是我希望在这种情况下新的路线是没开.到目前为止这是我的代码:
Widget build(BuildContext context){
return new Drawer(
child:
new ListView(
children: <Widget>[
new ListTile(
title: new Text("NewRoute"),
onTap: () {
Navigator.of(context).pop;
Navigator.of(context).pushNamed('/NewRoute');
}
)
)
)
}
Run Code Online (Sandbox Code Playgroud)
我想使用条件语句来检查我们是否在某条路线上.我知道有一种方法可以检查我们当前使用Route类的isCurrent的路径
https://docs.flutter.io/flutter/widgets/Route/isCurrent.html
虽然我不知道如何实现它.
先感谢您!
我是C的新手,我认为无论怎么做都没有任何区别,但我注意到在大多数示例中,for的循环都是如下例所示:
int i;
for(i = 0; i < 10; i++){
//some code
}
Run Code Online (Sandbox Code Playgroud)
而不是我最初如何在Java中引入for循环:
for(int i = 0; i < 10; i++){
//some code
}
Run Code Online (Sandbox Code Playgroud)
这背后有什么理由在C?
我正在使用image_picker库https://pub.dartlang.org/packages/image_picker 来选择/拍摄我要上传的照片.到目前为止,代码已成功将图像上传到Firebase存储,唯一的问题是图像上传后应用程序关闭(不会真正崩溃,只是关闭,VS代码无法连接到设备).代码如下:
File _image;
Future _takeProfilePicture() async{
var image = await ImagePicker.pickImage(source: ImageSource.camera);
setState((){
_image = image;
});
}
Future _selectProfilePicture() async{
var image = await ImagePicker.pickImage(source: ImageSource.gallery);
setState((){
_image = image;
});
}
Future<Null> _uploadProfilePicture() async{
FirebaseUser user = await FirebaseAuth.instance.currentUser();
final StorageReference ref = FirebaseStorage.instance.ref().child('${user.email}/${user.email}_profilePicture.jpg');
final StorageUploadTask uploadTask = ref.putFile(_image);
final Uri downloadUrl = (await uploadTask.future).downloadUrl;
}
void _selectAndUploadPicture() async{
await _selectProfilePicture();
await _uploadProfilePicture();
}
void _takeAndUploadPicture() async{
await _takeProfilePicture();
await _uploadProfilePicture();
}
Run Code Online (Sandbox Code Playgroud)
终端打印以下内容:
W/Firestore( 6873): (0.6.6-dev) …Run Code Online (Sandbox Code Playgroud) 我想获取当前登录用户的电子邮件,但我似乎找不到方法。我认为它应该类似于:
FirebaseAuth.instance.currentUser().getEmail(); //The .getEmail() part is made up
Run Code Online (Sandbox Code Playgroud) 我需要查询用户的信息,但到目前为止,我一直坚持如何从文档中的字段中获取值,以保留当前登录用户的信息:
String firstName = "";
String lastName = "";
void getInfo() async{
var user = FirebaseAuth.instance.currentUser();
var userQuery = Firestore.instance.collection('Users').where('e-mail', isEqualTo: '$user.email');
// WHAT SHOULD I DO NEXT
}
@override
void initState(){
super.initState();
getInfo();
}
@override
Widget build(BuildContext context){
return new Scaffold(
body: new Container(
child: new ListView(
children: <Widget>[
new ListTile(
title: new Text(firstName)
),
new ListTile(
title: new Text(lastName)
)
]
)
)
);
}
Run Code Online (Sandbox Code Playgroud)
我有一个名为“用户”的集合,当新用户注册时,它会创建一个文档来存储他的信息。该文档具有字符串类型的字段:'e-mail'、'firstName'、'lastName'。