【发布时间】:2020-10-21 12:51:28
【问题描述】:
最近,我们推出了一个 android 应用程序 (https://play.google.com/store/apps/details?id=com.appbakerz.paaniwaala),但对于某些随机用户,我们在我们的服务器上没有收到任何请求。
例如,我们的第一个屏幕是登录屏幕,用户输入他的手机号码。在这个屏幕上,当一些用户输入他们的电话号码时,服务器没有命中。
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:paaniwaala/auth/signin_sheet.dart';
import 'package:paaniwaala/blocks/auth_block.dart';
import 'package:paaniwaala/blocks/notification_block.dart';
import 'package:paaniwaala/models/user.dart';
import 'package:provider/provider.dart';
import 'package:paaniwaala/localizations.dart';
class SignIn extends StatefulWidget {
@override
_SignInState createState() => _SignInState();
}
class _SignInState extends State<SignIn> {
final _formKey = GlobalKey<FormState>();
final UserCredential userCredential = UserCredential();
NotificationBlock notify = NotificationBlock();
@override
void initState() {
super.initState();
notify.registor();
}
@override
void dispose() {
super.dispose();
}
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// backgroundColor: Colors.white,
// body: ListView(
// children: [
// Container(
// height: 300,
// decoration: BoxDecoration(
// image: DecorationImage(
// image: AssetImage("assets/images/loginImage.jpeg"))),
// child: Text('data'),
// )
// ],
// ),
// );
// }
@override
Widget build(BuildContext context) {
AuthBlock auth = Provider.of<AuthBlock>(context);
var submitButton = RaisedButton(
color: Theme.of(context).primaryColor,
textColor: Colors.white,
child: auth.loading && auth.loadingType == 'login'
? CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.white),
)
: Text(
AppLocalizations.of(context).translate('SIGN_IN'),
style: TextStyle(fontWeight: FontWeight.bold),
),
onPressed: () async {
userCredential.devise_id = notify.token;
if (_formKey.currentState.validate() && !auth.loading) {
showModalBottomSheet(
context: context,
builder: (context) {
return WillPopScope(
child: SigninSheet(), onWillPop: () async => false);
},
isDismissible: false,
);
auth.isMobileLogin = true;
_formKey.currentState.save();
await auth.login(userCredential, context);
}
},
);
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
// Container(
// height: 320.0,
// margin: EdgeInsets.only(left: 30.0, right: 30.0),
// child: Image(
// image: AssetImage("assets/images/signin_page_logo.png"),
// ),
// ),
Container(
margin: EdgeInsets.all(10.0),
child: Text(
'Note: You may need to wait upto 1 minute to get OTP.',
style: TextStyle(color: Colors.red, fontSize: 16.0),
),
),
Container(
child: Form(
key: _formKey,
child: Padding(
padding: const EdgeInsets.only(left: 15.0, right: 15.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(bottom: 10.0),
child: TextFormField(
style: TextStyle(
fontWeight: FontWeight.bold, fontSize: 22.0),
autofocus: true,
inputFormatters: [LengthLimitingTextInputFormatter(10)],
maxLength: 10,
keyboardType: TextInputType.phone,
validator: (value) {
String pattern = r'^[1-9][0-9]{9}$';
RegExp regExp = new RegExp(pattern);
value = value.trim();
value = value.length > 10
? value.substring(0, value.length - 1)
: value;
if (value.isEmpty) {
return 'Please Enter Mobile Number';
} else if (!regExp.hasMatch(value)) {
return 'Please Enter Valid Mobile Number';
}
return null;
},
onSaved: (value) {
setState(() {
userCredential.usernameOrEmail = value;
});
},
onFieldSubmitted: (_) {
FocusScope.of(context).requestFocus(new FocusNode());
submitButton.onPressed();
},
decoration: InputDecoration(
hintText: 'Enter Mobile Number',
labelText: AppLocalizations.of(context)
.translate('MOBILE_NUMBER'),
),
),
),
Padding(
padding: const EdgeInsets.only(top: 25.0),
child: SizedBox(
width: double.infinity,
height: 50,
child: submitButton,
),
)
],
),
),
),
),
],
);
}
}
有人可以帮忙或有什么建议来调试吗?
【问题讨论】:
-
您必须分享您的登录页面代码。
-
@Akif 如果您需要任何其他调试细节,请告诉我。