Я создаю систему чата React
и Firebase
.
Данные системы чата управляются Firebase RealTimeDatabase
.
Теперь сайт здесь
URL: https://react -chat-b0e8a.firebaseapp.com/
Github: https://github.com/kaibara/React-chat
Я пытаюсь создать функцию удаления данных.
Однако я не смог найти элемент для добавления в child()
.
Потому что я не могу использовать remove()
код.
Я вызвал документацию firebase и подумал о реализации функции удаления, используя update ()
и set ()
и т. Д.
Однако, поскольку child ()
не может быть указан, ни один из них не может быть использован.
Хотите поделиться, как идентифицировать child()
в Firebase RealtimeDatabae или реализовать функцию удаления данных?
Теперь код здесь.
App.js
import React, { Component } from 'react'
import firebase from 'firebase/app'
import { firebaseApp,firebaseDB } from './firebase/firebase'
import ChatMessage from './components/ChatMessage'
const firebaseDB = firebase.database()
const messagesRef = firebaseDB.ref('messages')
class App extends Component {
constructor(props) {
super(props)
this.state = {
text : "",
user_name: "",
messages : []
}
}
componentWillMount() {
messagesRef.on('child_added', (snapshot) => {
const m = snapshot.val()
console.log({m})
let msgs = this.state.messages
msgs.push({
'text' : m.text,
'user_name' : m.user_name
})
this.setState({
messages : msgs
})
})
}
render() {
return (
<div className="App">
<div className="MessageList">
<h2>メッセージログ</h2>
{this.state.messages.map((m, i) => {
return <ChatMessage key={i} message={m}/>
})}
</div>
</div>
)
}
}
export default App;
ChatMessage.js
import React,{Component} from 'react'
import { firebaseDB } from '../firebase/firebase'
const firebaseDB = firebase.database()
const messagesRef = firebaseDB.ref('messages')
class ChatMessage extends Component {
onRemoveClick(){
console.log(messagesRef.child(key))
}
render(){
return(
<div className="Message">
<p className="MessageText">{this.props.message.text}</p>
<p className="MessageName">by {this.props.message.user_name}</p>
<button className="MessageRemove" onClick={this.onRemoveClick}>削除</button>
</div>
)
}
}
export default ChatMessage
Спасибо.