Est-ce que j'utilise le SDK Firebase JS ou React-Native-Firebase ?
P粉083785014
2023-09-02 18:27:28
<p>J'ai créé une grande application Web à l'aide du SDK JS de Firebase et je passe maintenant à une application mobile à l'aide de React-Native et Expo. Depuis que j'utilise Expo, j'ai créé un client de développement pour ne pas utiliser Expo Go puisque RNFirebase utilise du code natif.
<strong>Mon objectif : mettre en œuvre une connexion de base à Google liée à l'authentification React-Native-Firebase</strong></p>
<p>J'ai installé "react-native-firebase/app" et "react-native-firebase/auth" en utilisant npm</p>
<p>Cependant, lorsque j'essaie d'utiliser l'authentification de connexion de Google (https://rnfirebase.io/auth/social-auth), je reçois toujours une erreur indiquant que l'application Firebase « [DEFAULT] » n'est pas initialisée. </p>
<p>J'ai donc suivi un autre guide (je ne sais pas s'il est correct) qui me disait de créer un fichier firebase.js similaire à mon application web avec le contenu suivant : </p>
<pre class="brush:php;toolbar:false;">importer Firebase depuis '@react-native-firebase/app';
importer l'authentification depuis '@react-native-firebase/auth' ;
// Pour Firebase JS SDK v7.20.0 et versions ultérieures, MeasurementId est facultatif
const firebaseConfig = {apiKey : "AIzaSyCoNUZI0-Mir9hGtXUJJmIrML88JxSOJAk", authDomain : "campus-market-25068.firebaseapp.com", databaseURL : "https://campus-market-25068-default-rtdb.firebaseio.com", projectId : "campus-market-25068", bucket de stockage : "campus-market-25068.appspot.com", messageSenderId : "315015080294", ID d'application : "1:315015080294:web:53dbed097963d67b92c0a7", identifiant de mesure : "G-5TVXC2MQ7S"} ;si (!firebase.apps.length) {firebase.initializeApp(firebaseConfig);}export { firebase, auth }</pre>
<p>Maintenant, l'authentification fonctionne, mais je ne sais pas si j'utilise toujours RNFirebase ou si j'utilise le SDK JS de Firebase.Quelqu'un peut-il répondre à cela ? Voici mon code d'authentification : </p>
<pre class="brush:php;toolbar:false;">importer 'expo-dev-client'
importer { useState, useEffect } depuis 'react' ;
importer { StatusBar } depuis 'expo-status-bar' ;
importer { StyleSheet, Text, View, Button } depuis 'react-native' ;
// importer './src/firebase';/
/import * en tant que firebase depuis '@react-native-firebase/app' ;
importer { auth } depuis './firebase' ;
importer { GoogleSignin } depuis '@react-native-google-signin/google-signin' ;
exporter la fonction par défaut App() {
GoogleSignin.configure({
webClientId : '315015080294-gejpuoaedqhbcve32dat55gg4cn5va3j.apps.googleusercontent.com',
});
fonction asynchrone onGoogleButtonPress() {
// Vérifiez si l'appareil prend en charge Google Play
wait GoogleSignin.hasPlayServices({ showPlayServicesUpdateDialog: true });
// Récupère le jeton d'identification de l'utilisateur
console.log(GoogleSignin);
const { idToken } = wait GoogleSignin.signIn();
const googleCredential = auth.GoogleAuthProvider.credential(idToken);
// Connectez-vous à l'utilisateur à l'aide des informations d'identification
return auth().signInWithCredential(googleCredential);// console.log("YOOOOOOOOO5")// console.log(res)}
retour (
<View style={styles.container}><Text>Ouvrez App.js pour commencer à développer votre application ! </Text><StatusBar style="auto" /><Button title="Connexion Google" onPress={() => onGoogleButtonPress().then(() => console.log('Utiliser Connexion Google ! '))}/></Afficher>);})
)
const styles = StyleSheet.create({container : {flex : 1,backgroundColor : '#fff',alignItems : 'center',justifyContent : 'center',},});</pre>
<p>Je ne sais pas par où commencer</p>
Dans cette ligne de code, la bibliothèque
auth().signInWithCredential
,你仍然在使用react-native-firebase
est utilisée :Dans le SDK JavaScript Firebase, cela pourrait être
firebase.auth().signInWithCredential
或者signInWithCredential(auth, ...
.