2017-08-18 90 views
1

我在我的android應用程序中實現Facebook和Google身份驗證。如何實現Facebook和谷歌身份驗證的單一註銷功能

我已經完成了他們兩個的身份驗證,但是從應用程序註銷我有一個按鈕,並且有兩種通過Facebook或Google註銷的方法非常不同。

我需要從應用程序註銷,考慮從哪個帳戶用戶登錄到我的應用程序,即Facebook或Google。

下面是從Facebook註銷代碼:

FacebookSdk.sdkInitialize(getApplicationContext()); 
LoginManager.getInstance().logOut(); 

而且,這是谷歌:

private void signOut() { 
    Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
      new ResultCallback<Status>() { 
       @Override 
       public void onResult(Status status) { 
        // ... 
       } 
      }); 
} 

如何根據用戶已登錄的帳戶類型實現這些功能在...上。

在此先感謝。

回答

2

面向對象編程的默認答案:創建另一個抽象層

含義:你開始是這樣的:

public interface Authentification { 
    public void login(); 
    public void logout(); 
} 

,然後創建不同類實現此接口。

,然後在運行時,你有一個類/方法,它知道實現,以使用爲用戶 - 這取決於是否需要谷歌/ Facebook的/不管。此方法確實說Authentification作爲返回類型。

而你所有的其他代碼只有處理他們現在的對象:他們實現該接口。

0

我建議您查看支持Facebook和Google等多種身份驗證提供程序的Firebase身份驗證。

Firebase將負責登錄和註銷所選身份驗證提供程序,您不必爲每個新的身份驗證提供程序開發登錄和註銷過程。

你會發現這裏的文檔:

https://firebase.google.com/docs/auth/android/start/