Flutter Windows平台支持插件firebase_windows的使用
Flutter Windows平台支持插件firebase_windows的使用
Firebase Windows
Windows实现的Firebase Flutter插件,适用于Flutter应用。
注意: 该插件代码基于firebase/flutterfire。具体版本信息如下:
_flutterfire_internals
: v1.3.0firebase_core_platform_interface
: v4.8.0firebase_core
: v2.12.0firebase_auth_platform_interface
: v6.15.0firebase_auth
: v4.6.0firebase_storage_platform_interface
: v4.4.0firebase_storage
: v11.2.0
windows/CMakeLists.txt
文件基于 firebase_core
: v2.13.1。CMakeLists.txt
开始使用
这是针对Windows的flutterfire实现。目前只有一部分模块和功能被实现。如需使用,请参考https://github.com/firebase/flutterfire。
支持的功能
目前以下模块和功能已实现:
- firebase_core
- firebase_auth
FirebaseAuth.signInWithCredential
FirebaseAuth.signInWithCustomToken
FirebaseAuth.signInWithEmailAndPassword
FirebaseAuth.signOut
User.getIdTokenResult
- firebase_storage
Reference.getDownloadURL
Reference.putFile
UploadTask.cancel
完整示例代码
以下是完整的示例代码,展示了如何在Flutter Windows平台上使用firebase_windows插件。
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:firebase_windows/firebase_windows.dart'; // 导入firebase_windows插件
import 'debug_widget.dart';
import 'firebase_options.dart';
import 'view/auth_page.dart';
import 'view/storage_page.dart';
void main() {
runApp(const MaterialApp(
home: MyApp(),
));
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final TextEditingController _debugTextEditingController = TextEditingController();
FirebaseAuth? _auth;
bool get isInitialized => Firebase.apps.isNotEmpty;
bool get isSignIn => _auth?.currentUser != null;
String? get appName => isInitialized ? Firebase.apps.first.name : null;
Future<void> initializeDefault() async {
FirebaseApp app = await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
_auth = FirebaseAuth.instanceFor(app: app)
..authStateChanges().listen((event) {
log('authStateChanges, event: $event');
setState(() {});
});
log('Initialized default app $app');
}
void apps() {
final List<FirebaseApp> apps = Firebase.apps;
log('Currently initialized apps: $apps');
}
void options() {
final FirebaseApp app = Firebase.app();
final options = app.options;
log('Current options for app ${app.name}: $options');
}
Future<void> openAuthPage() async {
await Navigator.push<AuthPage>(
context,
MaterialPageRoute(builder: (context) => AuthPage(app: Firebase.app())),
);
}
Future<void> openStoragePage() async {
await Navigator.push<AuthPage>(
context,
MaterialPageRoute(builder: (context) => StoragePage(app: Firebase.app())),
);
}
void log(String msg) {
if (kDebugMode) print(msg);
_debugTextEditingController.text += '$msg\n';
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: SingleChildScrollView(
padding: const EdgeInsets.symmetric(vertical: 32, horizontal: 16),
child: Column(
children: [
Text('Initialized app name: $appName\n'),
Text('Current user: ${_auth?.currentUser?.displayName}\n'),
SizedBox(
width: 800,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(
onPressed: initializeDefault,
child: const Text('Initialize default app'),
),
ElevatedButton(
onPressed: apps,
child: const Text('List apps'),
),
ElevatedButton(
onPressed: isInitialized ? options : null,
child: const Text('List default options'),
),
ElevatedButton(
onPressed: isInitialized ? openAuthPage : null,
child: const Text('Open Auth page'),
),
ElevatedButton(
onPressed: isSignIn ? openStoragePage : null,
child: const Text('Open Storage page'),
),
],
),
),
DebugWidget(controller: _debugTextEditingController),
],
),
),
);
}
}
更多关于Flutter Windows平台支持插件firebase_windows的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter Windows平台支持插件firebase_windows的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中为Windows平台集成并使用firebase_windows
插件的示例代码案例。这个示例将涵盖基本的插件配置和简单的Firebase身份验证功能。
1. 设置Flutter项目
首先,确保你已经创建了一个Flutter项目。如果还没有,可以使用以下命令创建一个新项目:
flutter create my_flutter_app
cd my_flutter_app
2. 添加依赖项
在pubspec.yaml
文件中,添加firebase_core
和firebase_auth
依赖项,以及特定于Windows的插件firebase_windows
:
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.10.0 # 请检查最新版本
firebase_auth: ^3.3.0 # 请检查最新版本
dev_dependencies:
flutter_test:
sdk: flutter
# For Windows platform specific implementation
dependency_overrides:
firebase_windows:
git:
url: https://github.com/FirebaseExtended/flutterfire.git
path: packages/firebase_windows
注意:由于firebase_windows
可能还没有正式发布到pub.dev,这里使用了Git依赖项。如果已正式发布,请直接添加最新版本。
3. 配置Firebase项目
在Firebase控制台中创建一个新的Firebase项目,并添加Windows应用。下载生成的GoogleService-Info.json
文件,并将其放置在Flutter项目的windows/runner
目录下。
4. 修改Windows平台配置
编辑windows/runner/Runner.rc
文件,添加Firebase所需的资源文件引用(如果有的话,通常这一步在FlutterFire插件中自动处理,但确认一下是个好习惯)。
5. 初始化Firebase
在lib/main.dart
文件中,初始化Firebase并添加基本的身份验证功能:
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_auth/firebase_auth.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Firebase应用
FirebaseApp app = await Firebase.initializeApp();
assert(app != null);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Firebase Auth Example'),
),
body: FirebaseAuthExample(),
),
);
}
}
class FirebaseAuthExample extends StatefulWidget {
@override
_FirebaseAuthExampleState createState() => _FirebaseAuthExampleState();
}
class _FirebaseAuthExampleState extends State<FirebaseAuthExample> {
late FirebaseAuth _auth;
@override
void initState() {
super.initState();
_auth = FirebaseAuth.instance;
}
Future<void> _signInAnonymously() async {
try {
UserCredential result = await _auth.signInAnonymously();
User? user = result.user;
// 更新UI或处理用户数据
print('User (${user!.uid}) signed in anonymously.');
} catch (e) {
print(e.toString());
}
}
@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
onPressed: _signInAnonymously,
child: Text('Sign in Anonymously'),
),
);
}
}
6. 运行应用
确保你的开发环境已经安装了Flutter和Dart SDK,并且已经配置好了Windows开发工具链(如Visual Studio)。然后,你可以使用以下命令运行应用:
flutter run -d windows
总结
以上步骤涵盖了如何在Flutter项目中为Windows平台集成firebase_windows
插件,并实现基本的Firebase身份验证功能。请确保你使用的Firebase和FlutterFire插件版本是最新的,并根据需要进行适当的调整。如果遇到任何问题,请查阅FlutterFire的官方文档或GitHub仓库。