Как настроить проверку приложений как для выпуска, так и для отладки на Android?

# #android #firebase #firebase-app-check

Вопрос:

Можно ли установить оба приложения на заводе поставщика проверки приложений? Или я должен использовать только один для отладки, а другой для выпуска? Если да, то как это сделать?

Фрагмент кода, на который я ссылаюсь:

 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") 
            }
    }
}
 

Пожалуйста, обратите внимание, что я не котлин и не разработчик Android.

Я разрабатываю приложение flutter и недавно добавил проверку приложений firebase, которая вызывает у меня много проблем, и я очень стараюсь их решить.

Я пытаюсь сузить рамки проблемы, которая у меня есть.

Ответ №1:

Вы должны установить только одну фабрику, а не обе, так как последняя установка переопределяет все предыдущие фабрики.

Есть несколько вариантов, которые вы должны установить на другой завод в зависимости от варианта сборки:

  • Воспользуйся if(BuildConfig.DEBUG) installOne() else installAnother()
  • Разместите логику установки в разных исходных наборах, т. Е. src/release/java/AppCheckInitialization.kt и src/debug/java/AppCheckInitialization.kt fun initializeAppCheck() в том, и в другом может быть функция, которую можно вызвать из вашей активности. В зависимости от того, какой вариант вы создадите, приложение будет использовать соответствующую версию initializeAppCheck() .