Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

開始使用 Firebase Crashlytics

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

本快速入門介紹如何使用 Crashlytics Flutter 插件在您的應用中設置 Firebase Crashlytics,以便您可以在 Firebase 控制台中獲取全面的崩潰報告。

設置 Crashlytics 涉及使用命令行工具和 IDE。要完成設置,您需要強制引發測試異常,以將您的第一個崩潰報告發送到 Firebase。

在你開始之前

  1. 如果您還沒有,請在 Flutter 項目中配置和初始化 Firebase

  2. 推薦:要獲得無崩潰用戶、麵包屑日誌和速度警報等功能,您需要在 Firebase 項目中啟用 Google Analytics。

    Crashlytics 支持的所有 Android 和 Apple 平台(watchOS 除外)都可以利用 Google Analytics 的這些功能。

    確保在您的 Firebase 項目中啟用了 Google Analytics:轉到 >項目設置>集成選項卡,然後按照 Google Analytics 的屏幕說明進行操作。

第 1 步:將 Crashlytics 添加到您的 Flutter 項目中

  1. 在 Flutter 項目的根目錄下,運行以下命令來安裝 Crashlytics Flutter 插件:

    flutter pub add firebase_crashlytics
    
  2. 在 Flutter 項目的根目錄中,運行以下命令:

    flutterfire configure
    

    運行此命令可確保您的 Flutter 應用的 Firebase 配置是最新的,並且對於 Android,將所需的 Crashlytics Gradle 插件添加到您的應用中。

  3. 完成後,重新構建您的 Flutter 項目:

    flutter run
    

第 2 步:配置崩潰處理程序

您可以通過使用FirebaseCrashlytics.instance.recordFlutterFatalError覆蓋FlutterError.onError來自動捕獲 Flutter 框架內引發的所有錯誤:

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

  await Firebase.initializeApp();

  // Pass all uncaught errors from the framework to Crashlytics.
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

如果您正在使用區域,則檢測區域的錯誤處理程序將捕獲 Flutter 框架未捕獲的錯誤(例如,在按鈕的onPressed處理程序中):

void main() async {
  runZonedGuarded<Future<void>>(() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();

    FlutterError.onError =
       FirebaseCrashlytics.instance.recordFlutterFatalError;

    runApp(MyApp());
  }, (error, stack) =>
    FirebaseCrashlytics.instance.recordError(error, stack, fatal: true));
}

有關如何處理其他類型錯誤的示例,請參閱自定義崩潰報告

第 3 步:強制測試崩潰以完成設置

要完成 Crashlytics 的設置並在 Firebase 控制台的 Crashlytics 儀表板中查看初始數據,您需要強制引發測試異常。

  1. 將代碼添加到您的應用程序中,您可以使用它來強制引發測試異常。

    如果您已將調用FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)的錯誤處理程序添加到頂級Zone ,則可以使用以下代碼向您的應用添加一個按鈕,按下該按鈕時會拋出測試異常:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. 構建並運行您的應用程序。

  3. 強制拋出測試異常以發送您應用的第一個報告:

    1. 從您的測試設備或模擬器打開您的應用程序。

    2. 在您的應用程序中,按下您使用上述代碼添加的測試異常按鈕。

  4. 轉到 Firebase 控制台的Crashlytics 儀表板以查看您的測試崩潰。

    如果您已刷新控制台,但五分鐘後仍未看到測試崩潰,請啟用調試日誌記錄以查看您的應用是否正在發送崩潰報告。


就是這樣! Crashlytics 現在正在監控您的應用程序的崩潰情況,以及在 Android 上的非致​​命錯誤和 ANR。訪問Crashlytics 儀表板以查看和調查您的所有報告和統計信息。

下一步