Firebase JS SDK または React-Native-Firebase を使用していますか?
P粉083785014
2023-09-02 18:27:28
<p>Firebase の JS SDK を使用して大規模なウェブ アプリを作成しましたが、現在は React-Native と Expo を使用するモバイル アプリに移行しています。私はExpoを使用しているため、RNFirebaseはネイティブコードを使用しているため、Expo Goを使用しないように開発クライアントを作成しました。
<strong>私の目標: React-Native-Firebase Authentication に関連付けられた基本的な Google ログインを実装する</strong></p>
<p>npm を使用して「react-native-firebase/app」と「react-native-firebase/auth」をインストールしました</p>
<p>しかし、Google のログイン認証 (https://rnfirebase.io/auth/social-auth) を使用しようとすると、「[DEFAULT]」 Firebase アプリが初期化されていないというエラーが表示され続けます。 </p>
<p>そこで、別のガイド (正しいかどうかはわかりません) に従い、次の内容を含む Web アプリケーションと同様の firebase.js ファイルを作成するように指示しました。
<pre class="brush:php;toolbar:false;">「@react-native-firebase/app」から firebase をインポートします;
'@react-native-firebase/auth' から認証をインポートします。
// Firebase JS SDK v7.20.0 以降の場合、measurementId はオプションです
const firebaseConfig = {apiKey: "AIzaSyCoNUZI0-Mir9hGtXUJJmIrML88JxSOJAk"、authDomain: "campus-market-25068.firebaseapp.com"、databaseURL: "https://campus-market-25068-default-rtdb.firebaseio.com"、projectId: "campus-market-25068"、storageBucket: "campus-market-25068.appspot.com"、messagingSenderId: "315015080294"、appId: "1:315015080294:web:53dbed097963d67b92c0a7"、measurementId: "G-5TVXC2M" Q7S" };if (!firebase.apps.length) {firebase.initializeApp(firebaseConfig);}export { firebase, auth }</pre>
<p>これで認証は機能しますが、まだ RNFirebase を使用しているのか、Firebase の JS SDK を使用しているのかわかりません。誰かこれに答えられますか?これは私の認証コードです: </p>
<pre class="brush:php;toolbar:false;">import 'expo-dev-client'
import { useState, useEffect } from 'react';
import { StatusBar } から 'expo-status-bar';
import { StyleSheet, Text, View, Button } from 'react-native';
// './src/firebase' をインポートします;/
/import * '@react-native-firebase/app' から Firebase として;
import { auth } から './firebase';
「@react-native-google-signin/google-signin」から { GoogleSignin } をインポートします。
デフォルト関数 App() をエクスポート {
GoogleSignin.configure({
webClientId: '315015080294-gejpuoaedqhbcve32dat55gg4cn5va3j.apps.googleusercontent.com',
});
非同期関数 onGoogleButtonPress() {
// デバイスが Google Play をサポートしているかどうかを確認します
await GoogleSignin.hasPlayServices({ showPlayServicesUpdateDialog: true });
// ユーザーの ID トークンを取得します
console.log(GoogleSignin);
const { idToken } = GoogleSignin.signIn() を待ちます。
const googleCredential = auth.GoogleAuthProvider.credential(idToken);
// 認証情報を使用してユーザーをログインします
return auth().signInWithCredential(googleCredential);// console.log("YOOOOOOOO5")// console.log(res)}
戻る (
<View style={styles.container}><Text>App.js を開いてアプリケーションの開発を開始してください。 </Text><StatusBar style="auto" /><Button title="Google ログイン" onPress={() => onGoogleButtonPress().then(() => console.log('Use Google でサインインしてください!'))}/></View>);})
)
const style = StyleSheet.create({container: {flex: 1,backgroundColor: '#fff',alignItems: 'center',justifyContent: 'center',},});</pre>
<p>どこから始めればよいかわかりません</p>
このコード行では、
Firebase JavaScript SDK では、これはauth().signInWithCredential
が使用されており、引き続きreact-native-firebase
ライブラリを使用しています。 リーリーfirebase.auth().signInWithCredential
または
signInWithCredential(auth, ....
になります。