認証の場合、Firestore RESTAPIはFirebaseAuthenticationIDトークンまたはGoogleIdentity OAuth2.0トークンのいずれかを受け入れます。
この例では、FirebaseIDトークン を使用します。
まず、FirestoreクラスとOAuth2クラスをインポートする必要があります。
import { Firestore, OAuth2 } from '@mescius/wijmo.cloud';
次に、生成したFirebaseIDトークンを使用してOAuth2オブジェクトを作成します。
const CLIENT_ID = '60621001861-h0u4ek4kmd3va9o2bubhq9ean0bgrhu2.apps.googleusercontent.com';
const SCOPES = [ 'https://www.googleapis.com/auth/userinfo.email' ];
let auth = new OAuth2(API_KEY, CLIENT_ID, SCOPES);
// button to log in/out
let oAuthBtn = document.getElementById('auth_btn');
// click button to log user in or out
oAuthBtn.addEventListener('click', () => {
if (auth.user) {
auth.signOut();
} else {
auth.signIn();
}
});
認証を完了するには、ユーザーが変更されたときに idToken を Firestore オブジェクトに適用する必要もあります(OAuth2トークンを使用するには、代わりに accessToken プロパティを設定します)。
// update button/sheet state when user changes
auth.userChanged.addHandler(s => {
let user = s.user;
// update button caption
oAuthBtn.textContent = user ? 'Sign Out' : 'Sign In';
// update Firestore ID token
fsNWind.idToken = user ? s.idToken : null;
});