【发布时间】:2021-07-16 09:42:13
【问题描述】:
我正在尝试开发一个使用 Firebase 作为后端的项目。我在 iOS 模拟器中使用了 Firebase 模拟器,它运行良好。我已将 Android 模拟器特定设置添加到我的项目中:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
String host = !kIsWeb && Platform.isAndroid ? '10.0.2.2' : 'localhost';
await Firebase.initializeApp();
await FirebaseAuth.instance.useAuthEmulator(host, 9099);
FirebaseFirestore.instance.settings = Settings(
host: '$host:8080',
sslEnabled: false,
persistenceEnabled: false,
);
runApp(const MyApp());
}
我在验证时收到以下错误。
E/flutter ( 7777): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: [firebase_auth/unknown] null
E/flutter ( 7777): #0 MethodChannelFirebaseAuth.createUserWithEmailAndPassword
E/flutter ( 7777): <asynchronous suspension>
E/flutter ( 7777): #1 FirebaseAuth.createUserWithEmailAndPassword
E/flutter ( 7777): <asynchronous suspension>
E/flutter ( 7777): #2 _LoginScreenState.build._submitLogin
E/flutter ( 7777): <asynchronous suspension>
E/flutter ( 7777):
授权码:
void _submitLogin(String email, String password) async {
final _auth = FirebaseAuth.instance;
UserCredential user;
final firestore = FirebaseFirestore.instance;
if (_isSignup && _daysOfWeek.values.every((element) => !element)) {
await showCupertinoDialog(
context: context,
builder: (ctx) {
return CupertinoAlertDialog(
title: const Text('No Days Selected'),
content:
const Text('Please select days you are available to play'),
actions: [
CupertinoDialogAction(
onPressed: () {
return;
},
child: const Text('OK'),
),
],
);
},
);
}
if (_isSignup) {
user = await _auth.createUserWithEmailAndPassword(
email: email, password: password);
firestore.collection('users').doc(user.user.uid).set(
{
'date_of_birth': _dateOfBirth,
'name': _name,
'hip_size': _hipSize,
'height': _height,
'tennis_level': _tennisLevel,
'days_avaialable': _daysOfWeek,
},
);
return;
}
await _auth.signInWithEmailAndPassword(email: email, password: password);
}
我已经创建了 android 模拟器的主机字符串,但它仍然不起作用。我做错了什么?
编辑:
10.0.2.2 IP 空间可通过模拟器 chrome 访问:
【问题讨论】:
标签: firebase flutter android-emulator