我有一個Android應用程序,其中包含一些活動和長時間運行的服務。該服務具有一些模型類,POJO存儲在Firebase數據庫中。Firebase身份驗證:使用FirebaseUI登錄後獲取AuthCredential
首次運行時,應用程序確定用戶尚未登錄,並使用FirebaseUI-Android爲其提供Google和Facebook帳戶選擇器活動。這是很常見的:
Intent signInIntent = AuthUI.getInstance().createSignInIntentBuilder()
.setProviders(Arrays.asList(
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build()))
.setTheme(R.style.AppThemeFirebaseAuth)
.setLogo(R.drawable.logo)
.setIsSmartLockEnabled(!BuildConfig.DEBUG)
.build();
activity.startActivityForResult(signInIntent, Request.FIREBASE_AUTH);
然後我就可以得到一個FirebaseUser
,並開始做的東西與數據庫。
FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference firebaseUserRef = FirebaseDatabase.getInstance().getReference("users").child(firebaseUser.getUid());
問題出現在服務的下一次運行中,這可能是當沒有任何活動時。我想再次做一些數據庫操作,但沒有任何用戶交互。看起來我需要撥打FirebaseAuth.signInWithCredential()
,但我在哪裏可以獲得AuthCredential
參考? AuthCredential
不會傳遞迴開始登錄的活動。
我可以在FirebaseUI-Android中使用智能鎖定功能來幫助您嗎?
無法訪問FirebaseAuth.getInstance()。getCurrentUser();從你的服務?由於它是一種靜態方法,因此您應該能夠從任何地方訪問它。 –
當然。返回null。 – Eliot
@SaurabhPadwekar我很快就會說話,對不起!看起來這比第一次擔心的時候要少得多。我會在接下來的幾周內做一些測試,並用我的發現進行更新,但我可能不必堅持AuthCredential。 – Eliot