最近几天我花了很多时间阅读了几个 SO 问题和教程。我想要实现的是,我的 flutter 应用程序的用户可以选择一个 firebase 项目并使用电子邮件/密码登录。登录后,显然应该显示相应数据库的正确数据。这就是我失败的地方。
在阅读了一些网站和来自 SO 的问题一段时间后,我使用以下网站获取登录的第一部分。
完成本文后,我能够成功登录到我定义的 firebase 项目。
我怎么知道登录成功了?我将项目中的用户 uid 与控制台中我的应用程序中的打印语句进行了比较。这证明了我对非默认项目的配置是正确的。
但现在我无法解决的主要问题。登录后,数据始终来自 google-service.json 的默认 firebase 项目。
对于状态管理,我选择提供程序包,正如他们在 I/O '19 中提到的那样。所以在我的 main.dart 中,我用 MultipleProvider 包装了整个应用程序:
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider<LoginModel>(
builder: (_) => LoginModel(),
),
ChangeNotifierProvider<Auth>(
builder: (_) => Auth(),
),
],
child: MaterialApp(
title: 'Breaking News Tool',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: RootPage(),
),
);
}
Run Code Online (Sandbox Code Playgroud)
提供的 Auth 类是一个服务,它连接到 firebase sdk 并配置非默认应用程序来创建所需的 firebase auth
abstract class BaseAuth {
getDefaultAuth(); …Run Code Online (Sandbox Code Playgroud) firebase firebase-authentication flutter google-cloud-firestore