Flutter桌面端Firebase核心服务插件firebase_core_desktop_new的使用

Flutter桌面端Firebase核心服务插件firebase_core_desktop_new的使用

pub package

一个用于在Linux和Windows上使用Firebase Core API的Flutter插件,使连接到多个Firebase应用成为可能。

要了解有关Firebase的更多信息,请访问Firebase网站

开始使用

请按照以下步骤安装Firebase Core以供桌面应用程序使用。

  1. 在项目的根目录下运行以下命令:
flutter pub add firebase_core
flutter pub add firebase_core_desktop

注意: <code>firebase_core_desktop</code> 是主 <code>firebase_core</code> 插件的平台实现,因此如果尚未安装 <code>firebase_core</code>,则必须同时安装它们。

  1. 导入该库:
import 'package:firebase_core/firebase_core.dart';

使用

初始化默认应用

与iOS、Android、macOS和Web上的firebase_core不同,无需特定于平台的配置文件来初始化默认的Firebase应用。相反,将配置作为选项传递给initializeApp方法而不指定名称。

const firebaseOptions = FirebaseOptions(
  appId: '...',
  apiKey: '...',
  projectId: '...',
  messagingSenderId: '...',
  authDomain: '...',
);

await Firebase.initializeApp(options: firebaseOptions);

如果您正在推送至公共仓库,可以考虑将配置通过环境变量传递:

const firebaseOptions = FirebaseOptions(
  appId: const String.fromEnvironment('FIREBASE_APP_ID'),
  apiKey: const String.fromEnvironment('FIREBASE_API_KEY'),
  projectId: const String.fromEnvironment('FIREBASE_PROJECT_ID'),
  messagingSenderId: const String.fromEnvironment('FIREBASE_SENDER_ID'),
  authDomain: const String.fromEnvironment('FIREBASE_AUTH_DOMAIN'),
);

请注意,初始化应在任何其他FlutterFire插件使用之前进行。

初始化次要应用

要初始化次要应用,请向initializeApp方法提供名称:

await Firebase.initializeApp(app: 'foo', options: firebaseOptions);

检查完整的使用示例

示例代码

以下是示例代码:

// ignore_for_file: public_member_api_docs

import 'dart:async';
import 'dart:developer';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // 应用名称
  String get name => 'foo';

  // Firebase配置选项
  FirebaseOptions get firebaseOptions => const FirebaseOptions(
        appId: '1:448618578101:ios:0b650370bb29e29cac3efc',
        apiKey: 'AIzaSyAgUhHU8wSJgO5MVNy95tMT07NEjzMOfz0',
        projectId: 'react-native-firebase-testing',
        messagingSenderId: '448618578101',
      );

  // 初始化默认应用
  Future<void> initializeDefault() async {
    final app = await Firebase.initializeApp(options: firebaseOptions);
    log('Initialized default app $app');
  }

  // 初始化次要应用
  Future<void> initializeSecondary() async {
    final app = await Firebase.initializeApp(
      name: name,
      options: firebaseOptions,
    );

    log('Initialized $app');
  }

  // 获取当前初始化的应用
  void apps() {
    final apps = Firebase.apps;
    log('Currently initialized apps: $apps');
  }

  // 列出当前应用的配置选项
  void options() {
    final app = Firebase.app(name);
    final options = app.options;
    log('Current options for app $name: $options');
  }

  // 删除应用
  Future<void> delete() async {
    final app = Firebase.app(name);
    await app.delete();
    log('App $name deleted');
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Firebase Core 示例应用'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(20),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: [
              ElevatedButton(
                onPressed: initializeDefault,
                child: const Text('初始化默认应用'),
              ),
              ElevatedButton(
                onPressed: initializeSecondary,
                child: const Text('初始化次要应用'),
              ),
              ElevatedButton(
                onPressed: apps,
                child: const Text('获取应用列表'),
              ),
              ElevatedButton(
                onPressed: options,
                child: const Text('列出配置选项'),
              ),
              ElevatedButton(
                onPressed: delete,
                child: const Text('删除应用'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter桌面端Firebase核心服务插件firebase_core_desktop_new的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter桌面端Firebase核心服务插件firebase_core_desktop_new的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter桌面端应用中使用Firebase核心服务时,firebase_core_desktop_new 是一个非常有用的插件,它允许你在桌面平台(如Windows、macOS和Linux)上使用Firebase的核心功能。以下是使用 firebase_core_desktop_new 插件的详细步骤:

1. 创建Flutter项目

首先,确保你已经创建了一个Flutter项目。如果还没有,可以使用以下命令创建一个新项目:

flutter create my_firebase_desktop_app

2. 添加依赖

pubspec.yaml 文件中添加 firebase_core_desktop_new 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^2.0.0  # 或者最新版本
  firebase_core_desktop_new: ^0.0.1  # 或者最新版本

然后在终端运行以下命令来获取依赖:

flutter pub get

3. 初始化Firebase

在你的 main.dart 文件中初始化Firebase。首先导入必要的包:

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_core_desktop_new/firebase_core_desktop_new.dart';

然后在 main 函数中初始化Firebase:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化Firebase
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  runApp(MyApp());
}

4. 配置Firebase选项

为了在桌面平台上使用Firebase,你需要提供一个 DefaultFirebaseOptions 对象。这个对象包含了Firebase项目的配置信息。你可以在 lib/firebase_options.dart 文件中生成这些配置。

首先,确保你已经安装了 firebase_cli 并且已经登录到Firebase:

npm install -g firebase-tools
firebase login

然后,在项目根目录下运行以下命令来生成Firebase配置:

flutter pub run firebase_core_desktop_new:generate

这将会在 lib/firebase_options.dart 文件中生成 DefaultFirebaseOptions 类。

5. 使用Firebase服务

现在你已经成功初始化了Firebase,可以在应用中使用Firebase的其他服务了,例如Firebase Authentication、Firestore等。

例如,使用Firebase Authentication的示例:

import 'package:firebase_auth/firebase_auth.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Firebase Desktop App'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              try {
                UserCredential userCredential = await FirebaseAuth.instance.signInAnonymously();
                print("Signed in with UID: ${userCredential.user?.uid}");
              } catch (e) {
                print("Failed to sign in: $e");
              }
            },
            child: Text('Sign in Anonymously'),
          ),
        ),
      ),
    );
  }
}

6. 运行应用

确保你已经配置好了桌面平台的开发环境,然后运行应用:

flutter run -d windows  # 或者 macos, linux

7. 调试和测试

在开发过程中,你可以使用Firebase控制台来监控应用的使用情况,并调试可能出现的问题。

8. 打包和发布

当你准备好发布应用时,可以使用Flutter的打包工具来生成桌面平台的安装包:

flutter build windows  # 或者 macos, linux
回到顶部