Adakah saya menggunakan Firebase JS SDK atau React-Native-Firebase?
P粉083785014
2023-09-02 18:27:28
<p>Saya mencipta apl web yang besar menggunakan JS SDK Firebase dan kini saya beralih kepada apl mudah alih menggunakan React-Native dan Expo. Memandangkan saya menggunakan Expo, saya mencipta klien pembangunan supaya tidak menggunakan Expo Go kerana RNFirebase menggunakan kod asli.
<strong>Matlamat saya: Laksanakan log masuk Google asas yang terikat dengan React-Native-Firebase Authentication</strong></p>
<p>Saya telah memasang "react-native-firebase/app" dan "react-native-firebase/auth" menggunakan npm</p>
<p>Walau bagaimanapun, apabila saya cuba menggunakan pengesahan log masuk Google (https://rnfirebase.io/auth/social-auth), saya terus mendapat ralat mengatakan '[DEFAULT]' apl firebase tidak dimulakan. </p>
<p>Jadi, saya mengikuti panduan lain (saya tidak tahu sama ada ia betul) yang memberitahu saya untuk mencipta fail firebase.js yang serupa dengan aplikasi web saya dengan kandungan berikut: </p>
<pre class="brush:php;toolbar:false;">import firebase daripada '@react-native-firebase/app';
import auth daripada '@react-native-firebase/auth';
// Untuk Firebase JS SDK v7.20.0 dan ke atas, measurementId adalah pilihan
const firebaseConfig = {apiKey: "AIzaSyCoNUZI0-Mir9hGtXUJJmIrML88JxSOJAk",authDomain: "campus-market-25068.firebaseapp.com",databaseURL: "https://campus-market-25068-default-rtdb",.profirebaseIo. "campus-market-25068",storageBucket: "campus-market-25068.appspot.com",messagingSenderId: "315015080294",appId: "1:315015080294:web:53dbed097963d67b", "Squarement-Id67b"; "G}TVM7X2" (!firebase.apps.length) {firebase.initializeApp(firebaseConfig);}eksport { firebase, auth }</pre>
<p>Sekarang, pengesahan berfungsi, tetapi saya tidak tahu sama ada saya masih menggunakan RNFirebase atau menggunakan JS SDK Firebase.Bolehkah sesiapa menjawab ini? Ini ialah kod pengesahan saya: </p>
<pre class="brush:php;toolbar:false;">import 'expo-dev-client'
import { useState, useEffect } daripada 'react';
import { StatusBar } daripada 'expo-status-bar';
import { StyleSheet, Text, View, Button } daripada 'react-native';
// import './src/firebase';/
/import * sebagai firebase daripada '@react-native-firebase/app';
import { auth } daripada './firebase';
import { GoogleSignin } daripada '@react-native-google-signin/google-signin';
eksport fungsi lalai App() {
GoogleSignin.configure({
webClientId: '315015080294-gejpuoaedqhbcve32dat55gg4cn5va3j.apps.googleusercontent.com',
});
fungsi async onGoogleButtonPress() {
// Semak sama ada peranti menyokong Google Play
tunggu GoogleSignin.hasPlayServices({ showPlayServicesUpdateDialog: true });
// Dapatkan token ID pengguna
console.log(GoogleSignin);
const { idToken } = menunggu GoogleSignin.signIn();
const googleCredential = auth.GoogleAuthProvider.credential(idToken);
// Log masuk pengguna menggunakan kelayakan
return auth().signInWithCredential(googleCredential);// console.log("YOOOOOOOO5")// console.log(res)}
kembali (
<Lihat gaya={styles.container}><Teks>Buka App.js untuk mula membangunkan aplikasi anda! </Text><StatusBar style="auto" /><Button title="Log Masuk Google" onPress={() => onGoogleButtonPress().then(() => console.log('Gunakan Log masuk Google! '))}/></Lihat>);})
)
const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#fff',alignItems: 'center',justifyContent: 'center',},});</pre>
<p>Saya tidak pasti di mana hendak bermula</p>
Dalam baris kod ini, perpustakaan
auth().signInWithCredential
,你仍然在使用react-native-firebase
digunakan:Dalam Firebase JavaScript SDK, ini mungkin
firebase.auth().signInWithCredential
或者signInWithCredential(auth, ...
.