#javascript #firebase #react-native #firebase-realtime-database #firebase-authentication
#javascript #firebase #react-native #firebase-база данных в реальном времени #firebase-аутентификация
Вопрос:
Я работаю над собственным приложением на React Native. Все работало правильно, пока я не создал страницу для сохранения пользовательских данных в базе данных. Сначала оно работало правильно, как и предполагалось, я смог отправить информацию в базу данных. Но когда я обновил приложение, появилось сообщение об ошибке «Не создано приложение Firebase ‘[DEFAULT]’ — вызовите Firebase App.initializeApp()». Я уже инициализировал его в своем App.js поэтому я удалил страницу, и ошибка исчезла. Я снова создал страницу, и она снова работала корректно, пока я не обновил приложение. Вот мой код, проверьте его и направьте меня, пожалуйста.
DataScreen.js
import firebase from "firebase";
const userID = firebase.auth().currentUser.uid;
export default class DataScreen extends React.Component {
state = {
fname: "",
restaurant: "",
city: "",
address: "",
phone: "",
};
handleSave = () => {
firebase
.database()
.ref()
.child("Users")
.child(userID)
.set(this.state, function (error) {
if (error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode);
console.log(errorMessage);
Alert.alert("Message :" errorMessage);
} else {
Alert.alert("Information added succesfully");
}
})
.then((ref) => {
this.props.navigation.goBack();
})
.catch((error) => this.setState({ errorMessage: error.message }));
};
render() {
return (
<DataInputs/>
);
}
}
Ответ №1:
Похоже, вы используете новый экземпляр приложения firebase каждый раз, когда модуль перезагружается.
Вы должны инициализировать свою firebase один раз и использовать экземпляр во всем своем приложении.
firebase.js
import firebase from 'firebase';
try {
firebase.initializeConfig({ /* Config here* /})
} catch(err) {
// swallow the error
console.log(err)
}
/* use this firebase in your project. */
export default firebase;