【问题标题】:How to configure app check for both release and debug on android?如何在 android 上为发布和调试配置应用程序检查?
【发布时间】:2021-08-03 15:24:38
【问题描述】:

两个app check provider factory都可以安装吗?或者我应该只使用一个进行调试,另一个用于发布?如果是,那该怎么做?

我指的代码sn-p:

package pl.matematykagryzie.app

import android.os.Bundle
import android.util.Log

import io.flutter.embedding.android.FlutterActivity

import com.google.firebase.FirebaseApp
import com.google.firebase.appcheck.FirebaseAppCheck
import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory
import com.google.firebase.appcheck.safetynet.SafetyNetAppCheckProviderFactory

import com.google.firebase.functions.FirebaseFunctions

class MainActivity: FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)

        // Initialize firebae app
        FirebaseApp.initializeApp(/*context=*/this)

        val firebaseAppCheck = FirebaseAppCheck.getInstance()
        firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance())

        // Activate app check
        firebaseAppCheck.installAppCheckProviderFactory(
            SafetyNetAppCheckProviderFactory.getInstance())


        val data = hashMapOf(
            "isKotlin" to true
        )

        // Call a function
        FirebaseFunctions
            .getInstance("europe-central2")
            .getHttpsCallable("validateAppCheck")
            .call(data)
            .addOnFailureListener {
                Log.wtf("onCreate", "failure") 
            }
            .addOnSuccessListener {
                Log.wtf("onCreate", "success") 
            }
    }
}

请注意,我不是 kotlin 也不是 android 开发者。

我正在开发一个颤振应用程序,最近添加了 Firebase 应用程序检查,这给我带来了很多麻烦,我正在努力解决这些问题。

我正在尝试缩小我遇到的问题的范围。

【问题讨论】:

    标签: android firebase firebase-app-check


    【解决方案1】:

    您应该只安装一个工厂,而不是两个工厂,因为您安装的最后一个工厂会覆盖任何以前的工厂。

    您必须根据构建变体安装不同的工厂:

    • 使用if(BuildConfig.DEBUG) installOne() else installAnother()
    • 将安装逻辑放在不同的源集中,即src/release/java/AppCheckInitialization.ktsrc/debug/java/AppCheckInitialization.kt,它们都可以有一个可以从您的活动中调用的fun initializeAppCheck()。根据您构建的变体,该应用将使用相应版本的initializeAppCheck()

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 2011-04-27
      相关资源
      最近更新 更多