2016-12-16 14 views
15

は私がしようとするように、私は、私はそこに多くのことをやっていないだろうIOS /ウェブへのポートへの準備ができていたときに最小限に私の母国アンドロイドfirebase発展を維持したいです。今android google loginの後にfirebaseを初期化するには?

firebaseのJavascriptがこれはプラグインからの世話をすることができ、AndroidのGoogleからのログインを許可していません。しかし、私が執着しているのは、Java AndroidのGoogleログインに基づいてfirebaseを初期化する方法です。だから、これは私が達成しようとしているものです

コルドバでは、GoogleへのJava-Androidのネイティブログインを呼び出す--->これに基づいて、どのように私はfirebaseを初期化するのでしょうか?

このプラグインは私がネイティブにグーグルにログインさせることができます:https://www.npmjs.com/package/cordova-plugin-googleplus

をしかし、私は認証トークンを必要とすると思いますか?トークンID?

firebase.auth().signInWithCredential(credential).catch(function(error) { 
    } else { 
    console.error(error); 
    } 
}); 

これは私に上記の要請を与えることができますか? https://developers.google.com/identity/sign-in/android/sign-in

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 

更新1:もっと情報を共有したい。ユーザーは、AndroidのGoogle経由でログインして取得するときに私は以下のオブジェクト

GoogleSignInAccount 

https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInAccount

を持っていることはpublic String getIdToken() & public String getServerAuthCode()を持って、なぜこれらは、JSを使用してfirebaseを認証するために使用することはできませんか?

アップデート2:Farazが提供する回答が動作しているようです。ここでhttps://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithCredential

signInWithCredentialはあなたの助けをありがとう関数のリファレンスです。

答えて

4

GoogleAuthProvider資格を持つ利用auth.signInWithCredential。ここで

は一例です:グーグル後

auth.signInWithCredential(firebase.auth.GoogleAuthProvider.credential(googleAccessToken)).then(function(user) { 
    // Google User is logged in 
}).catch(function(error) { 
    // Error 
}); 

Source for more infomation

1

あなたはFirebase使用状況に関するthis GitHub exampleを読むことができます。

あなたが見つけることができる

そしてHere -

、Googleのを使用してFirebaseにログインするpossbleである私が意味する tokenがあなたの getIdToken ある this public void onAuthenticated(AuthData authData)

を呼び出します(すべてが成功の場合)

mFirebaseRef.authWithOAuthToken("google", token, new AuthResultHandler("google")); 

をFacebook、Twitterのいずれの場合でも、あなたが受け取ったトークンをFirebaseサーバに送信しなければなりません。ログインしているかどうかにかかわらずトークンをチェックします。同じ方法で独自のサーバーを設定できます。

0

あなたが認証を使用する必要がありますログインします。GoogleAuthProvider資格を持つsignInWithCredential:

private void firebaseAuthWithGoogle(GoogleSignInAccount account) { Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId()); final String name = account.getDisplayName(); final String email = account.getEmail(); AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null); getAuth().signInWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { Log.d(TAG, "onComplete: sign in with credentials " + task.isSuccessful()); if (task.iここで、具体的Javascriptの解決策ではなく、Javaのいずれかに頼まsSuccessful()) { Log.e(TAG, "success: sign in with credentials "); } if (!task.isSuccessful()) { Log.e(TAG, "onComplete: sign in with credentials " + task.getException()); } } }); }

+0

OPをコードを入力します。ここでは

はコードです。 – Faraz

関連する問題