我正在嘗試使用顫振和 firebase 進行身份驗證,但我總是面臨這個問題。我在 firebase 中啟用了電子郵件和密碼驗證,還添加了 SHA-1 和 SHA-256 密鑰,但仍然無法解決錯誤。我收到“電子郵件格式錯誤”的錯誤訊息。錯誤如下。
W/DynamiteModule( 7351): Local module descriptor class for providerinstaller not found.
W/ConnectivityManager.CallbackHandler( 7351): callback not found for CALLBACK_AVAILABLE message
I/DynamiteModule( 7351): Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller( 7351): Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
[GETX] Instance "GetMaterialController" has been created
[GETX] Instance "GetMaterialController" has been initialized
[GETX] GOING TO ROUTE /SignUp
W/IInputConnectionWrapper( 7351): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper( 7351): getSelectedText on inactive InputConnection
W/IInputConnectionWrapper( 7351): getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper( 7351): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper( 7351): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper( 7351): endBatchEdit on inactive InputConnection
W/IInputConnectionWrapper( 7351): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper( 7351): setComposingText on inactive InputConnection
W/IInputConnectionWrapper( 7351): endBatchEdit on inactive InputConnection
W/IInputConnectionWrapper( 7351): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper( 7351): setComposingText on inactive InputConnection
W/IInputConnectionWrapper( 7351): endBatchEdit on inactive InputConnection
W/IInputConnectionWrapper( 7351): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper( 7351): getSelectedText on inactive InputConnection
W/IInputConnectionWrapper( 7351): getTextAfterCursor on inactive InputConnection
I/FirebaseAuth( 7351): [FirebaseAuth:] Preparing to create service connection to fallback implementation
W/System ( 7351): Ignoring header X-Firebase-Locale because its value was null.
I/flutter ( 7351): [firebase_auth/invalid-email] The email address is badly formatted.
這是表單驗證頁面。
// ignore_for_file: prefer_const_constructors, prefer_final_fields, prefer_const_literals_to_create_immutables
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:howyoudoin/controller/auth_methods.dart';
import 'package:howyoudoin/utils/theme.dart';
import 'package:howyoudoin/widgets/widgets.dart';
class SignUp extends StatefulWidget {
const SignUp({Key? key}) : super(key: key);
@override
_SignUpState createState() => _SignUpState();
}
class _SignUpState extends State<SignUp> {
TextEditingController _emailController = TextEditingController();
TextEditingController _passwordController = TextEditingController();
TextEditingController _username = TextEditingController();
TextEditingController _bioController = TextEditingController();
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_emailController.dispose();
_passwordController.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 22),
width: double.infinity,
child: Column(
children: [
Expanded(
child: Container(),
flex: 1,
),
SizedBox(
height: 24,
),
TextFieldInput(
textEditingController: _username,
hintText: "UserName",
textInputType: TextInputType.text,
isPass: false,
),
SizedBox(
height: 20,
),
TextFieldInput(
textEditingController: _emailController,
hintText: "Enter Your Email",
textInputType: TextInputType.emailAddress,
isPass: false,
),
SizedBox(
height: 20,
),
TextFieldInput(
textEditingController: _passwordController,
hintText: "Password",
textInputType: TextInputType.text,
isPass: true,
),
SizedBox(
height: 20,
),
TextFieldInput(
textEditingController: _bioController,
hintText: "Bio",
textInputType: TextInputType.text,
isPass: false,
),
SizedBox(
height: 20,
),
ElevatedButton(
onPressed: () async {
String res = await AuthMethods().signUpUser(
email: _emailController.toString(),
password: _passwordController.toString(),
username: _username.toString(),
bio: _bioController.toString(),
);
print(res);
},
child: Text("Sign Up"),
style: ElevatedButton.styleFrom(
primary: blueColor,
minimumSize: Size(double.infinity, 50),
),
),
Expanded(
child: Container(),
flex: 1,
),
],
),
),
),
);
}
}
并且 AuthMethod 代碼是
import 'dart:typed_data';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:howyoudoin/resources/storage_methods.dart';
class AuthMethods {
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseFirestore _firestore = FirebaseFirestore.instance;
Future<String> signUpUser(
{required String email,
required String password,
required String username,
required String bio}) async {
String res = "Some error occured";
try {
if (email.isNotEmpty ||
password.isNotEmpty ||
bio.isNotEmpty ||
username.isNotEmpty) {
UserCredential cred = await _auth.createUserWithEmailAndPassword(
email: email, password: password);
print(cred.user!.uid);
await _firestore.collection('users').doc(cred.user!.uid).set({
'username': username,
'uid': cred.user!.uid,
'email': email,
'bio': bio
});
res = "success";
}
} catch (err) {
res = err.toString();
}
return res;
}
}
uj5u.com熱心網友回復:
呼叫toString()aTextEditingController會為您提供控制器的描述,而不是底層文本欄位的值。所以這似乎是錯誤的:
String res = await AuthMethods().signUpUser(
email: _emailController.toString(),
password: _passwordController.toString(),
username: _username.toString(),
bio: _bioController.toString(),
);**
要獲取實際文本欄位的值,請改用text控制器的屬性。所以:
String res = await AuthMethods().signUpUser(
email: _emailController.text,
password: _passwordController.text,
username: _username.text,
bio: _bioController.text,
);
uj5u.com熱心網友回復:
問題的答案很簡單..您正在使用:
email: _emailController.toString(),
password: _passwordController.toString(),
username: _username.toString(),
bio: _bioController.toString(),
但你應該使用
email: _emailController.text,
password: _passwordController.text,
username: _username.text,
bio: _bioController.text,
如果有用請點贊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/412209.html
標籤:
