Flutter Firebase管理工具插件firebase_management的使用

使用

以下是一个完整的示例,展示如何使用 firebase_management 插件来管理 Firebase 项目。

import 'package:firebase_management/firebase_management.dart';

void main() async {
  // applicationDefault() 将会在以下位置查找凭据:
  // * 包主目录中的 service-account.json 文件
  // * 环境变量 GOOGLE_APPLICATION_CREDENTIALS
  // * 此库特定的配置文件,存储在用户的主目录中
  // * gcloud 的应用默认凭据
  var credential = Credentials.applicationDefault();

  // 如果未找到凭据,则通过 OpenID 登录
  // 凭据将存储在磁盘上以供后续使用
  credential ??= await Credentials.login();

  // 创建 FirebaseManagement 类的实例
  var firebaseManagement = FirebaseManagement(credential);

  // 获取项目列表
  var projects = await firebaseManagement.projects.listFirebaseProjects();

  for (var p in projects) {
    print('${p.displayName} - ${p.projectId}');

    // 获取项目的应用列表
    var apps = await firebaseManagement.apps.listFirebaseApps(p.projectId);
    for (var a in apps) {
      print(
          '  ${a.platform.toString().substring('AppPlatform.'.length)} - ${a.displayName} - ${a.appId}');

      // 获取应用的配置信息
      var config = await firebaseManagement.apps.getAppConfig(a.appId, a.platform);
      print(config.configFileContents); // 打印配置文件内容
      print(config.sdkConfig); // 打印 SDK 配置
    }
    return;
  }
}

代码说明

  1. 初始化凭证

    var credential = Credentials.applicationDefault();

    使用 Credentials.applicationDefault() 方法尝试从多个位置加载 Firebase 凭证。如果没有找到有效的凭证,可以通过 Credentials.login() 方法进行登录。

  2. 创建 FirebaseManagement 实例

    var firebaseManagement = FirebaseManagement(credential);

    创建一个 FirebaseManagement 对象,用于管理 Firebase 项目和应用。

  3. 获取项目列表

    var projects = await firebaseManagement.projects.listFirebaseProjects();

    调用 listFirebaseProjects() 方法获取当前用户拥有的所有 Firebase 项目。

  4. 遍历项目并获取应用

    for (var p in projects) {
      print('${p.displayName} - ${p.projectId}');
      var apps = await firebaseManagement.apps.listFirebaseApps(p.projectId);
      for (var a in apps) {
        print(
            '  ${a.platform.toString().substring('AppPlatform.'.length)} - ${a.displayName} - ${a.appId}');
      }
    }

    遍历每个项目,并调用 listFirebaseApps() 方法获取该项目下的所有应用。

  5. 获取应用配置

    var config = await firebaseManagement.apps.getAppConfig(a.appId, a.platform);
    print(config.configFileContents);
    print(config.sdkConfig);
1 回复

更多关于Flutter Firebase管理工具插件firebase_management的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


firebase_management 是一个 Flutter 插件,用于通过 Flutter 应用程序管理 Firebase 项目。它允许你创建、删除、更新 Firebase 项目,以及管理 Firebase 项目中的服务(如 Firestore、Authentication、Storage 等)。这个插件通常用于需要动态管理 Firebase 项目的场景,例如在多租户应用程序中为每个租户创建一个独立的 Firebase 项目。

安装 firebase_management 插件

首先,你需要在 pubspec.yaml 文件中添加 firebase_management 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  firebase_management: ^0.0.1  # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

使用 firebase_management 插件

1. 初始化 Firebase Management

在使用 firebase_management 插件之前,你需要初始化它。通常,你需要提供 Firebase 的管理员凭据(如服务账号的 JSON 文件)。

import 'package:firebase_management/firebase_management.dart';

void main() async {
  final management = FirebaseManagement(
    serviceAccountPath: 'path/to/service_account.json',
  );

  // 现在你可以使用 management 对象来管理 Firebase 项目
}

2. 创建 Firebase 项目

你可以使用 createProject 方法来创建一个新的 Firebase 项目。

void createNewProject() async {
  final project = await management.createProject(
    displayName: 'My New Project',
    projectId: 'my-new-project-id',
  );

  print('Project created: ${project.name}');
}

3. 获取 Firebase 项目列表

你可以使用 listProjects 方法来获取所有 Firebase 项目的列表。

void listProjects() async {
  final projects = await management.listProjects();

  for (var project in projects) {
    print('Project: ${project.displayName} (${project.projectId})');
  }
}

4. 删除 Firebase 项目

你可以使用 deleteProject 方法来删除一个 Firebase 项目。

void deleteProject(String projectId) async {
  await management.deleteProject(projectId);
  print('Project deleted: $projectId');
}

5. 管理 Firebase 服务

你还可以使用 firebase_management 插件来管理 Firebase 项目中的服务,例如启用 Firestore、Authentication 等。

void enableFirestore(String projectId) async {
  await management.enableService(
    projectId: projectId,
    service: 'firestore.googleapis.com',
  );
  print('Firestore enabled for project: $projectId');
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!