首页 > 解决方案 > Flutter App 在 Android 上因使用 Firebase Firestore 匿名登录而崩溃

问题描述

正如标题所说,我正在尝试使用 Firebase firestore 为我的 Flutter 应用程序设置匿名登录,但它在 Android 上崩溃了。它在 iOS 上运行良好。

我使用 firebase 控制台中的向导为我的应用程序设置 Firebase,并在配置 android 应用程序时使用了所有建议的版本号。

我在 android/build.gradle 文件中的依赖如下:

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.2'
    }

并且在 android/app/build.gradle 文件中设置了以下内容:

minSdkVersion 21 目标SdkVersion 28

我还下载了 google-services.json 文件并将其放入路径 android/app

我知道我已连接到 Firebase,因为我设置了谷歌分析,并且我可以在分析面板中将自己视为活跃用户

这是我为匿名登录设置的:

在“auth.dart”文件中:

import 'package:firebase_auth/firebase_auth.dart';

class AuthService {
      // this instance allows us to communicate with Firebase in the backend
  final FirebaseAuth _auth = FirebaseAuth.instance;
  // sign in anon
  Future signInAnon() async {
    try {
      AuthResult result = await _auth.signInAnonymously();
      FirebaseUser user = result.user;
      return user;
    } catch (e) {
      print(e.toString());
      return null;
    }
  }

在 SignIn 小部件中,我使用了一个调用 anonSignIn 方法的按钮:

GestureDetector(
                  onTap: () async {
                    dynamic result = await _auth.signInAnon();
                    if (result == null) {
                      print('error signing in');
                    } else {
                      print('anon user signed in');
                      print(result);
                    }
                  },
                  child: Text(
                    'Skip for now >',
                    style: TextStyle(color: eigthColor),
                  ),
                ),

该应用程序在调试控制台中为 iOS 打印正确的结果,但在 Android、模拟器和真实设备(三星)上运行时,应用程序在按下按钮时退出,调试控制台中显示的所有内容如下. 我是一个开发菜鸟。请帮忙!

** W/BiChannelGoogleApi(11081): [FirebaseAuth: ] getGoogleApiForMethod() 返回 Gms: com.google.firebase.auth.api.internal.zzak@c8b9c14 E/AndroidRuntime(11081): 进程: com.tsf.freshee_scratch, PID : 11081 E/AndroidRuntime(11081): java.lang.NoClassDefFoundError: 解析失败: Landroid/support/v4/util/ArrayMap; E/AndroidRuntime(11081):在 com.google.firebase.auth.internal.zzam.zzc(未知来源:22) E/AndroidRuntime(11081):在 com.google.firebase.auth.internal.zzam.zzde(未知来源:17) E/AndroidRuntime(11081):在 com.google.firebase.auth.internal.zzam.zzdd(未知来源:8) E/AndroidRuntime(11081):在 com.google.firebase.auth.internal.zzan .zzdf(Unknown Source:1) E/AndroidRuntime(11081): at com.google.firebase.auth.internal.zzm.isAnonymous(Unknown Source:47) E/AndroidRuntime(11081): at com.google.firebase.auth 。内部的。loadClass(ClassLoader.java:312) E/AndroidRuntime(11081): ... 16 更多 D/ViewRootImpl@c13a6a1MainActivity: MSG_WINDOW_FOCUS_CHANGED 0 1 D/InputMethodManager(11081): prepareNavigationBarInfo() DecorView@5990a33[MainActivity] D/InputMethodManager(11081 ): getNavigationBarColor() -352319669 I/Process (11081): 发送信号。PID:11081 SIG:9 失去与设备的连接。退出(sigterm)**

标签: androidfirebaseflutterdartgoogle-cloud-firestore

解决方案


推荐阅读