2017-02-20 127 views
2

因此,我最初嘗試將Firebase身份驗證Google登錄添加到我的應用程序。如果沒有成功,我決定試試Firebase的官方Quickstart應用程序。我下載了它,將它導入到Android Studio並遵循了所有的指示。它仍然無法工作。Firebase Google登錄不起作用(Android)

發生了什麼是我會點擊「登錄」按鈕,我會選擇我的配置文件,然後什麼也沒有。調試,我發現onActivityResult result.isSuccess()方法返回false,我不知道從哪裏去。

清單經常提出的解決方案:

  • 我已經加入了火力地堡JSON文件到快速啓動應用程序

  • 我所提供的SHA-1代碼

  • (創建一個新的項目後)
  • Firebase身份驗證/ Google Repo /所有內容均爲最新版本

  • 我已將「e nable谷歌登錄」切換按鈕在火力地堡控制檯

設備詳細信息:

  • Android設備:三星SM-G530A

  • Android操作系統版本:5.1.1

  • Google Play服務版本:10.2.0

  • Firebase/Play服務SDK版本:10.2.0

我的代碼是他們的,我沒有修改任何東西。找到here

編輯:所以,我得到了他們的快速入門工作。我認爲這是我在火力基地上的SHA-1代碼的問題。現在,雖然我在我的應用程序有一個新的問題......每當我打電話FirebaseAuth我得到一個錯誤這樣的:

error:cannot access zzbql 
class file for com.google.android.gms.internal.zzbql not found 

Error:Execution failed for task ':app:compileFacebookDebugJavaWithJavac'. 
> Compilation failed; see the compiler error output for details. 

編輯2:行,所以現在一切都搞砸了!在任何xml /佈局文件中,我會看到關於未被實例化的類的各種錯誤。

java.lang.NoSuchFieldError: AppCompatTextHelper 
at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:58) 
at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:40) 
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:72) 
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465) 
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172) 
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:150) 
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:193) 
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:333) 
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:152) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785) 
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:222) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) 
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) 
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389) 
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548) 
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533) 
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966) 
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533) 
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$70(RenderTask.java:659) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
+1

你可以從同一設備登錄到Google Web服務嗎?只是檢查它不是網絡問題。 –

+0

通過谷歌網絡服務你的意思只是像谷歌Gmail一樣的谷歌應用程序?我可以登錄到那些 – theRealOne

+0

是的,那是想法。但我想你的手機/ wifi上可能會有某種防火牆阻止訪問Firebase身份驗證服務器(不太可能 - 它可能只是使用https)。 –

回答

0

從這裏推薦的方向是獲得有關該問題的更多調試信息。可能使用:

FirebaseDatabase.getInstance().setLogLevel(Logger.Level.DEBU‌​G) 

然後看Android studio中的console/logcat輸出。有關詳細信息,請檢查here和/或here

有幾個你可能已經看到的網頁like this的答案,但沒有關於錯誤的更多信息,很難知道它們是否適用於你的情況。

+0

我一直在調試相當多,如果我逐步瀏覽所有代碼行,那麼失敗的地方是當Google登錄意圖啓動活動結果時,第142行https://github.com/ firebase/quickstart-android/blob/master/auth/app/src/main/java/com/google/firebase/quickstart/auth/GoogleSignInActivity.java – theRealOne

+0

所以我認爲它必須與我的SHA1或google-config.json文件。爲了完全可複製,我將重新從github下載firebase的快速入門,並且只能按照他們的谷歌登錄方向。 – theRealOne

+0

@therealccarter是最有可能的。我正在尋找一條調試消息或從Google服務返回的http數據(json),以便爲您提供auth失敗原因的提示。 –

1
mGoogleApiClient = new GoogleApiClient.Builder(this) 
.enableAutoManage(this /* FragmentActivity /, this/OnConnectionFailedListener*/) 
.addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
.build(); 

在上面的代碼行末尾加上mGoogleApiClient.connect();

+0

您是什麼意思的「在其初始化結束時」 ? – theRealOne

+0

@therealccarter編輯我的答案,使它對你更有意義。 – Deepesh

+1

@ cullub它將客戶端連接到Google Play服務。在這裏閱讀更多信息https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient – Deepesh

0

好的,大家感謝您的幫助。

原始問題的解決方案是我的SHA-1指紋在Firebase中不正確。

我編輯的解決方案是com.google.android.gms的版本減少來自10.2.0至10.0.1

怪異,但它的作品吧!