справочная информация < /h4>
Я использую подлинность данных Firebase Data Connect и Firebase в моем приложении Android. У меня также есть интегрированная проверка приложений Firebase, но в настоящее время он установлен в Undforced Mode. Я проверяю это, подтвердив firebase.auth.currentuser! = Null Когда мое приложение устранение. Зарегистрирует следующую ошибку GRPC: < /p>
Fatal Exception: e9.p0: UNAUTHENTICATED: unauthenticated: this operation requires a signed-in user
at io.grpc.Status.asException(Status.java:548)
at io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:300)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:574)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:72)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:742)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
at java.lang.Thread.run(Thread.java:1012)
< /code>
Эта ошибка прерывита, и я не смог найти последовательный способ ее воспроизведения. < /p>
Соответствующий код < /h4>
Трассия стека, приведенная выше, не ссылается на какие -либо из моих конкретных классов приложения или методов, непосредственно связанных с инициацией вызова данных. Он указывает на внутренние классы io.grpc и com.google.firebase.concurrent, предполагая, что сбой возникает глубже в уровне Firebase SDK или GRPC во время аутентифицированной обработки запросов. error seems internal and the Data Connect functions are auto-generated, I'm unsure which specific parts of my code are most relevant to debugging this UNAUTHENTICATED error.
If specific parts of my code would be helpful, please let me know in the comments, and I will update the question with the relevant snippets.
Requested code
Checking for user Аутентификация < /h6>
data class UserData(
val userId: String,
val username: String?,
val profilePictureUrl: String?
)
class GoogleAuthUiClient(
private val context: Context,
) {
private val auth = Firebase.auth
// Gets the signed in user details
fun getSignedInUser() = auth.currentUser?.run {
UserData(uid, displayName, photoUrl?.toString())
}
// Some other functions for signing in with CredentialManager...
}
< /code>
// Main app composable with some irrelevant code removed
// Checks if user is null to show Home screen for logged in users
// and Onboarding (Login) screen for users that are not logged in
@Composable
fun MyApp(
lifecycleScope: LifecycleCoroutineScope,
googleAuthUiClient: GoogleAuthUiClient,
application: android.app.Application
) {
val navController = rememberNavController()
val user = googleAuthUiClient.getSignedInUser()
if (user != null) {
DataConnectRepository.updateSignInInfo(user.username)
}
val startDestination =
if (user != null) {
Home
} else {
Onboarding
}
MyAppNavHost(
startDestination = startDestination,
lifecycleScope = lifecycleScope,
googleAuthUiClient = googleAuthUiClient
)
}
< /code>
MainActivity.kt
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
private val googleAuthUiClient by lazy {
GoogleAuthUiClient(
context = this
)
}
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
FirebaseApp.initializeApp(this)
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance(),
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance(),
)
}
setContent {
MyAppTheme {
MyApp(
lifecycleScope = lifecycleScope,
googleAuthUiClient = googleAuthUiClient,
application = application
)
}
}
}
}
< /code>
DataConnectRepository.kt
object DataConnectRepository {
private val connector: DefaultConnector = DefaultConnector.instance
// init {
// if (BuildConfig.DEBUG) {
// connector.dataConnect.useEmulator()
// }
// }
fun updateSignInInfo(displayName: String?) {
CoroutineScope(Dispatchers.IO).launch {
try {
connector.upsertUser.execute(displayName!!)
} catch (e: Exception) {
Log.i("User ID", Firebase.auth.currentUser?.uid.toString())
Firebase.crashlytics.recordException(e)
e.printStackTrace()
}
}
}
suspend fun getActiveSubscriptions(): List {
try {
return connector.getMyActiveSubscriptions.execute().data.googlePlaySubscriptions
} catch (e: FirebaseNetworkException) {
e.printStackTrace()
throw NoInternetConnectionException(e)
} catch (e: Exception) {
if (e.cause is UnknownHostException || e.cause?.cause is UnknownHostException) {
throw NoInternetConnectionException(e)
} else {
Log.i("User ID", Firebase.auth.currentUser?.uid.toString())
e.printStackTrace()
throw e
}
}
}
class NoInternetConnectionException(cause: Throwable?) :
Exception("No internet connection available", cause)
}
< /code>
I can confirm that the user id of both User ID< /code> операторы журнала не являются нулевыми, когда происходит сбой. Unautenticated. < /Li>
Проверка приложения: проверял, что проверка приложений находится в бездонном режиме, поэтому не следует блокировать запросы по любой причине. пережил эту ошибку раньше, или есть какие -либо идеи, что делать, чтобы ее решить?
Подробнее здесь: https://stackoverflow.com/questions/796 ... er-error-w
Прерывистое «неавтотиционировано: эта операция требует ошибки пользователя» с использованием данных Firebase Data Connec ⇐ Android
Форум для тех, кто программирует под Android
1748616619
Anonymous
справочная информация < /h4>
Я использую подлинность данных Firebase Data Connect и Firebase в моем приложении Android. У меня также есть интегрированная проверка приложений Firebase, но в настоящее время он установлен в Undforced Mode. Я проверяю это, подтвердив firebase.auth.currentuser! = Null Когда мое приложение устранение. Зарегистрирует следующую ошибку GRPC: < /p>
Fatal Exception: e9.p0: UNAUTHENTICATED: unauthenticated: this operation requires a signed-in user
at io.grpc.Status.asException(Status.java:548)
at io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:300)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:574)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:72)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:742)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
at java.lang.Thread.run(Thread.java:1012)
< /code>
Эта ошибка прерывита, и я не смог найти последовательный способ ее воспроизведения. < /p>
Соответствующий код < /h4>
Трассия стека, приведенная выше, не ссылается на какие -либо из моих конкретных классов приложения или методов, непосредственно связанных с инициацией вызова данных. Он указывает на внутренние классы io.grpc и com.google.firebase.concurrent, предполагая, что сбой возникает глубже в уровне Firebase SDK или GRPC во время аутентифицированной обработки запросов. error seems internal and the Data Connect functions are auto-generated, I'm unsure which specific parts of my code are most relevant to debugging this UNAUTHENTICATED error.
If specific parts of my code would be helpful, please let me know in the comments, and I will update the question with the relevant snippets.
Requested code
Checking for user Аутентификация < /h6>
data class UserData(
val userId: String,
val username: String?,
val profilePictureUrl: String?
)
class GoogleAuthUiClient(
private val context: Context,
) {
private val auth = Firebase.auth
// Gets the signed in user details
fun getSignedInUser() = auth.currentUser?.run {
UserData(uid, displayName, photoUrl?.toString())
}
// Some other functions for signing in with CredentialManager...
}
< /code>
// Main app composable with some irrelevant code removed
// Checks if user is null to show Home screen for logged in users
// and Onboarding (Login) screen for users that are not logged in
@Composable
fun MyApp(
lifecycleScope: LifecycleCoroutineScope,
googleAuthUiClient: GoogleAuthUiClient,
application: android.app.Application
) {
val navController = rememberNavController()
val user = googleAuthUiClient.getSignedInUser()
if (user != null) {
DataConnectRepository.updateSignInInfo(user.username)
}
val startDestination =
if (user != null) {
Home
} else {
Onboarding
}
MyAppNavHost(
startDestination = startDestination,
lifecycleScope = lifecycleScope,
googleAuthUiClient = googleAuthUiClient
)
}
< /code>
MainActivity.kt
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
private val googleAuthUiClient by lazy {
GoogleAuthUiClient(
context = this
)
}
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
FirebaseApp.initializeApp(this)
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance(),
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance(),
)
}
setContent {
MyAppTheme {
MyApp(
lifecycleScope = lifecycleScope,
googleAuthUiClient = googleAuthUiClient,
application = application
)
}
}
}
}
< /code>
DataConnectRepository.kt
object DataConnectRepository {
private val connector: DefaultConnector = DefaultConnector.instance
// init {
// if (BuildConfig.DEBUG) {
// connector.dataConnect.useEmulator()
// }
// }
fun updateSignInInfo(displayName: String?) {
CoroutineScope(Dispatchers.IO).launch {
try {
connector.upsertUser.execute(displayName!!)
} catch (e: Exception) {
Log.i("User ID", Firebase.auth.currentUser?.uid.toString())
Firebase.crashlytics.recordException(e)
e.printStackTrace()
}
}
}
suspend fun getActiveSubscriptions(): List {
try {
return connector.getMyActiveSubscriptions.execute().data.googlePlaySubscriptions
} catch (e: FirebaseNetworkException) {
e.printStackTrace()
throw NoInternetConnectionException(e)
} catch (e: Exception) {
if (e.cause is UnknownHostException || e.cause?.cause is UnknownHostException) {
throw NoInternetConnectionException(e)
} else {
Log.i("User ID", Firebase.auth.currentUser?.uid.toString())
e.printStackTrace()
throw e
}
}
}
class NoInternetConnectionException(cause: Throwable?) :
Exception("No internet connection available", cause)
}
< /code>
I can confirm that the user id of both User ID< /code> операторы журнала не являются нулевыми, когда происходит сбой. Unautenticated. < /Li>
Проверка приложения: проверял, что проверка приложений находится в бездонном режиме, поэтому не следует блокировать запросы по любой причине. пережил эту ошибку раньше, или есть какие -либо идеи, что делать, чтобы ее решить?
Подробнее здесь: [url]https://stackoverflow.com/questions/79608209/intermittent-unauthenticated-this-operation-requires-a-signed-in-user-error-w[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия