クラウドファイアストアを使用すると問題とエラーが発生します。vardb = firebaseApp.firestore()と入力すると、このエラーが表示されます
import React, { Component } from 'react'
import { StyleSheet, View, Dimensions, Image, Text, SafeAreaView,
ScrollView, FlatList, Modal, TextInput, TouchableOpacity } from 'react-
native';
import { firebaseAppKeep } from '../../constant/configFireBase'
import FontAwesome5 from 'react-native-vector-icons/FontAwesome5'
import TaskList from '../../components/TaskList'
import TaskForm from '../../components/TaskForm'
import HeaderBar from '../../components/HeaderBar'
const WIDTH = Dimensions.get('window').width
const HEIGHT = Dimensions.get('window').height
const sizeIconAdd = 60
export default class TaskHome extends Component {
constructor(props) {
super(props);
this.state = {
statusModal: false,
taskList: []
}
}
OpenModalTaskControl = () => {
this.setState({
statusModal: !this.state.statusModal
})
}
getDayCreated = () => {
var date = new Date().getDate(); //Current Date
var month = new Date().getMonth() + 1; //Current Month
var year = new Date().getFullYear(); //Current Year
date = date + '/' + month + '/' + year
return date
}
getTimeCreate = () => {
var hours = new Date().getHours(); //Current Hours
var min = new Date().getMinutes(); //Current Minutes
var sec = new Date().getSeconds(); //Current Seconds
hours = hours + ':' + min + ':' + sec
return hours
}
s4() {
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1)
}
genarateID() {
return this.s4() + this.s4() + '-' + this.s4() + this.s4() + '-' + this.s4() + this.s4() + '-' + this.s4() + this.s4();
}
addTask = (task) => {
task.id = this.genarateID()
task.dayCreated = this.getDayCreated()
task.timeCreated = this.getTimeCreate()
console.log(task)
var user = firebaseAppKeep.auth().currentUser
var db = firebaseAppKeep.firestore()
if (user) {
console.log(user.email, user.uid)
db.collection(user.uid)
.add({
colorTask: task.colorTask,
dayCreated: task.dayCreated,
id: task.id,
status: task.status,
taskDetail: task.taskDetail,
timeCreated: task.timeCreated,
titleTask: task.titleTask
})
}
this.state.taskList.Push(task)
}
SignOut = () => {
firebaseAppKeep.auth().signOut()
.then(() => {
this.props.navigation.navigate('AuthRoutes')
})
.catch(error => console.log(error));
}
render() {
var { statusModal } = this.state
var showBtnAddTask = statusModal === false ?
<View style={{ position: 'absolute', left: WIDTH - sizeIconAdd - 10, vtop: HEIGHT - sizeIconAdd - 20 }}>
<TouchableOpacity onPress={() => this.OpenModalTaskControl()}>
<FontAwesome5 name={"plus"} size={sizeIconAdd} color={"black"} />
</TouchableOpacity>
</View>
: null
return (
<SafeAreaView>
<HeaderBar opacity={this.state.statusModal} signout={this.SignOut} />
<View style={{ marginHorizontal: 10, alignItems: 'center', opacity: this.state.statusModal === true ? 0.1 : 1 }}>
<TaskList taskList={this.state.taskList} />
</View>
<TaskForm
statusModal={this.state.statusModal}
changeStatusModal={this.OpenModalTaskControl}
addTask={this.addTask}
/>
{showBtnAddTask}
</SafeAreaView>
);
}
}
エラー{TypeError:e.addEventListenerは関数ではありません。 ( 'e.addEventListener( "visibilitychange"、this.ah)'、 'e.addEventListener'は未定義です)}
あなたの助けになることを願っています
同じ問題があった。私がそれを機能させた唯一の方法は、"firebase": "^6.6.2"
にドロップすることでした
複数回試行した後、この行を追加すると機能します。
window.addEventListener = (x) => x;
firebaseのインポートと宣言の前に、これと同じ:
firebase.js
window.addEventListener = (x) => x;
import * as firebase from "firebase";
const firebaseConfig = {
apiKey: "myAPIkEy",
authDomain: "myapp.firebaseapp.com",
databaseURL: "https://myapp.firebaseio.com",
projectId: "myapp",
storageBucket: "myapp.appspot.com",
messagingSenderId: "00000000",
appId: "1:000000000:web:0000000000459",
measurementId: "G-TOOOOOOOO",
};
firebase.initializeApp(firebaseConfig);
次の手順を実行して解決策を見つけました:1. Firebaseをバージョン7.14.0に再インストールしました2. base-64をインストールしました3.次のコードをapp.jsに追加します
import {decode, encode} from 'base-64'
if (! global.btoa) {global.btoa = encode}
if (! global.atob) {global.atob = decode}
それは機能しましたが、それでも私にはいくつかの警告のように感じました。
Firebaseチームが問題を確認できるように、firebaseとfirebase-firestoreを追加して質問タグを編集してください。