Verwende ich Firebase JS SDK oder React-Native-Firebase?
P粉083785014
2023-09-02 18:27:28
<p>Ich habe eine große Web-App mit dem JS SDK von Firebase erstellt und steige jetzt auf eine mobile App mit React-Native und Expo um. Da ich Expo verwende, habe ich einen Entwicklungsclient erstellt, um Expo Go nicht zu verwenden, da RNFirebase nativen Code verwendet.
<strong>Mein Ziel: Einfaches Google-Login implementieren, das an die React-Native-Firebase-Authentifizierung gebunden ist</strong></p>
<p>Ich habe „react-native-firebase/app“ und „react-native-firebase/auth“ mit npm installiert</p>
<p>Wenn ich jedoch versuche, die Anmeldeauthentifizierung von Google (https://rnfirebase.io/auth/social-auth) zu verwenden, erhalte ich immer die Fehlermeldung „[STANDARD]“, die Firebase-App ist nicht initialisiert. </p>
<p>Also bin ich einer anderen Anleitung gefolgt (ich weiß nicht, ob sie richtig ist), die mir sagte, ich solle eine firebase.js-Datei ähnlich meiner Webanwendung mit dem folgenden Inhalt erstellen: </p>
<pre class="brush:php;toolbar:false;">Firebase importieren von '@react-native-firebase/app';
Authentifizierung aus „@react-native-firebase/auth“ importieren;
// Für Firebase JS SDK v7.20.0 und höher istmeasurementId optional
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-5TVXC2MQ7S“};if (!firebase.apps.length) {firebase.initializeApp(firebaseConfig);}export { firebase, auth }</pre>
<p>Jetzt funktioniert die Authentifizierung, aber ich weiß nicht, ob ich immer noch RNFirebase oder das JS SDK von Firebase verwende.Kann das jemand beantworten? Das ist mein Authentifizierungscode: </p>
<pre class="brush:php;toolbar:false;">import 'expo-dev-client'
import { useState, useEffect } from 'react';
import { StatusBar } aus 'expo-status-bar';
import { StyleSheet, Text, View, Button } from 'react-native';
// import './src/firebase';/
/import * als Firebase von '@react-native-firebase/app';
import { auth } from './firebase';
importiere { GoogleSignin } aus '@react-native-google-signin/google-signin';
Standardfunktion App() exportieren {
GoogleSignin.configure({
webClientId: '315015080294-gejpuoaedqhbcve32dat55gg4cn5va3j.apps.googleusercontent.com',
});
asynchrone Funktion onGoogleButtonPress() {
// Überprüfen Sie, ob das Gerät Google Play unterstützt
Warten Sie auf GoogleSignin.hasPlayServices({ showPlayServicesUpdateDialog: true });
// Holen Sie sich das ID-Token des Benutzers
console.log(GoogleSignin);
const { idToken } = waiting GoogleSignin.signIn();
const googleCredential = auth.GoogleAuthProvider.credential(idToken);
// Benutzer mit Anmeldeinformationen anmelden
return auth().signInWithCredential(googleCredential);// console.log("YOOOOOOOO5")// console.log(res)}
zurückkehren (
<View style={styles.container}><Text>Öffnen Sie App.js, um mit der Entwicklung Ihrer Anwendung zu beginnen! </Text><StatusBar style="auto" /><Button title="Google Login" onPress={() => onGoogleButtonPress().then(() => console.log('Use Google-Login! '))}/></View>})
)
const Styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#fff',alignItems: 'center',justifyContent: 'center',},});</pre>
<p>Ich weiß nicht, wo ich anfangen soll</p>
在这行代码中,使用了
auth().signInWithCredential
,你仍然在使用react-native-firebase
库:在 Firebase JavaScript SDK 中,这可能是
firebase.auth().signInWithCredential
或者signInWithCredential(auth, ...
。