Flutter 中来自 Firebase 的应用检查不起作用

Posted

技术标签:

【中文标题】Flutter 中来自 Firebase 的应用检查不起作用【英文标题】:App Check from Firebase in Flutter doesn't work 【发布时间】:2021-12-30 23:33:34 【问题描述】:

我正在尝试将 Firebase 中的 App Check 与 Flutter 一起使用(目前仅在 android 上),但文档非常糟糕,我不明白当我尝试使用应用访问 Firebase 服务时遇到的错误检查令牌。

我使用以下命令通过终端在我的个人 Android 设备上运行我的应用程序:flutter run --no-sound-null-safety

我想使用该应用访问 Firebase Storage 上的数据。我已对该功能强制执行 App Check,我还为我的应用启用了 SafetyNet,并且我创建了一个名为“测试”的调试令牌,我什至不知道如何使用。

这是我得到的错误:

这是我的main() 函数:

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

void main() async 
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate();

  // ... not related code

  runApp(MyWidget())

这是我在/android/app/ 中的build.gradle

// ...

dependencies 
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta03'

这是我在/android/app/src/main/kotlin/com/example/my_app/ 中的MainActivity.kt

// the package

import io.flutter.embedding.android.FlutterActivity
import android.os.Bundle
import com.google.firebase.FirebaseApp
import com.google.firebase.appcheck.FirebaseAppCheck
import com.google.firebase.appcheck.safetynet.SafetyNetAppCheckProviderFactory

class MainActivity: FlutterActivity() 
    override fun onCreate(savedInstanceState: Bundle?) 
        FirebaseApp.initializeApp(/*context=*/ this);
        val firebaseAppCheck = FirebaseAppCheck.getInstance()
        firebaseAppCheck.installAppCheckProviderFactory(SafetyNetAppCheckProviderFactory.getInstance())
        super.onCreate(savedInstanceState)
    

请帮帮我,现在没有任何效果。

【问题讨论】:

【参考方案1】:
FirebaseApp.initializeApp(/*context=*/ this);

你有一个分号,它是 Kotlin 代码;在 Kotlin 中,我们不使用分号。

【讨论】:

Kotlin 中的分号是可选的。它不是来自这个

以上是关于Flutter 中来自 Firebase 的应用检查不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何显示来自 Firebase 的文本?

如何在 Flutter 中缓存来自 Firebase 的图像?

在 Flutter 中,如何使用 CachedNetworkImage 显示来自 Firebase 的离线图像?

Flutter & firebase:我怎么能做一个“只包含来自”的查询

带有 WebView 的 Flutter 应用中的 Firebase 身份验证

Flutter/Firebase:管理功能是应用内功能还是云功能?