如果你已经更新了GetX到最新版本,同时你在集成Firebase Auth时遇到了一些问题,可能是由于更新中断了旧版本的依赖项,需要进行以下操作:
- 确认您的pubspec.yaml文件中是否添加以下依赖关系:
dependencies:
flutter:
sdk: flutter
get: ^4.1.1
firebase_auth: ^3.3.5
# other dependencies
-
确保您的Firebase项目已正确设置,并在您的项目中添加了您的Firebase配置文件google-services.json,并将其放置在顶级/ android / app /目录中。
-
针对您应用程序的用户创建Firebase Auth规则。 如果您仍在测试阶段,可以将规则设置为允许一切(如果您的产品可以向公众发布,则需要更细粒度的规则)。要编辑规则,请在Firebase控制台中选择您的项目,并在左侧导航栏中选择'Authentication”。
-
验证您的代码是否设置正确。 这是一个使用GetX的示例代码:
import 'package:get/get.dart';
import 'package:firebase_auth/firebase_auth.dart';
class AuthController extends GetxController {
FirebaseAuth _auth = FirebaseAuth.instance;
Rxn<User> firebaseUser = Rxn<User>();
@override
void onInit() {
firebaseUser.bindStream(_auth.authStateChanges());
super.onInit();
}
Future<void> signInAnonymously() async {
try {
await _auth.signInAnonymously();
} catch (e) {
Get.snackbar(
"Error signing in anonymously",
e.toString(),
snackPosition: SnackPosition.BOTTOM,
);
}
}
Future<void> signOut() async {
try {
await _auth.signOut();
} catch (e) {
Get.snackbar(
"Error signing out",
e.toString(),
snackPosition: SnackPosition.BOTTOM,
);
}
}
}
class LoginPage extends StatelessWidget {
final authController = Get.put(AuthController());
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () => authController.signInAnonymously(),
child: Text("Sign in anonymously"),
),
ElevatedButton(
onPressed: () => authController.signOut(),
child: Text("