# #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()
.