Reactjs 有没有办法在react native with firebase实时数据库中实现一对一的消息传递?

Reactjs 有没有办法在react native with firebase实时数据库中实现一对一的消息传递?,reactjs,firebase,react-native,firebase-realtime-database,react-native-gifted-chat,Reactjs,Firebase,React Native,Firebase Realtime Database,React Native Gifted Chat,我正在尝试使用firebase实时数据库在react native中实现一对一的消息传递。我对react native/firebase非常陌生,我不太确定如何向特定用户uid发送消息。我在网上看到了一些使用firebase firestore进行群聊的链接,但我想使用实时数据库和一对一的消息传递来实现这一点。到目前为止,我已经成功地在我的应用程序中发送了一条消息,但当以当前用户身份登录时,我也会显示来自数据库中所有用户的所有消息。我正在使用react native gifted chat作为U

我正在尝试使用firebase实时数据库在react native中实现一对一的消息传递。我对react native/firebase非常陌生,我不太确定如何向特定用户uid发送消息。我在网上看到了一些使用firebase firestore进行群聊的链接,但我想使用实时数据库和一对一的消息传递来实现这一点。到目前为止,我已经成功地在我的应用程序中发送了一条消息,但当以当前用户身份登录时,我也会显示来自数据库中所有用户的所有消息。我正在使用react native gifted chat作为UI

//这是MessagesScreen.js文件
类MessagesScreen扩展组件{
状态={
信息:[]
}  
获取用户(){
返回{
_id:FireMessage.uid,
}
}
componentDidMount(){
FireMessage.get(message=>this.setState(previous=>({
消息:giftechat.append(previous.messages,message)
})));
}
组件将卸载(){
FireMessage.off();
}
render(){
const chat=;
如果(Platform.OS==“android”){
返回(
{chat}
);
}
返回{chat};
}
}
导出默认消息屏幕;
//这是文件FireMessage.js
类FireMessage{
构造函数(){
this.init()
this.checkAuth()
}
初始化=()=>{
如果(!firebase.apps.length&&firebaseConfig.apps.length==0){
firebase.initializeApp({
apiKey:“xxxxxxxxxx”,
authDomain:“XXXXXXXXXX”,
数据库URL:“XXXXXXXXX”,
项目编号:“xxxxxxxx”,
storageBucket:“xxxxxxxxx”,
messagingSenderId:“xxxxxxxx”,
appId:“xxxxxxxxxx”,
度量标准:“xxxxxxxxx”
});
}
};
checkAuth=()=>{
firebase.auth().onAuthStateChanged(用户=>{
如果(!用户){
firebase.auth();
}
});
};
发送=消息=>{
messages.forEach(项目=>{
常量消息={
text:item.text,
时间戳:firebase.database.ServerValue.timestamp,
用户:item.user
};
this.db.push(消息)
});
};
解析=消息=>{
const{user,text,timestamp}=message.val();
const{key:_id}=消息;
const createdAt=新日期(时间戳);
返回{
_身份证,
创建数据,
文本,
用户
};
};
get=callback=>{
this.db.on(“添加的子对象”,快照=>
回调(this.parse(snapshot));
};
off(){
this.db.off();
}
get db(){
返回firebase.database().ref(“消息”);
}
获取uid(){
返回(firebase.auth().currentUser |{}).uid;
}
}
导出默认的新FireMessage();
实时数据库结构:


欢迎来到StackOverflow!为了帮助我们更好地帮助您,请清理代码的缩进,并将文件放在它们自己的代码块中。e、 g.如果类
FireMessage
在其自己的文件中,请将其与组件分开。如果您在第一行添加文件名,它通常会帮助回答您的问题的人,如:
//这是./fire message.js
。感谢您的快速回复。我尽可能多地试着识别。我还分离了组件。你能帮忙吗?谢谢你的编辑。你知道我如何解决这个问题吗?在引入挂钩之前,我对react还不够熟悉,没有时间学习。您需要执行许多步骤:正确登录用户(非用户ID更改每次登录)、更新用户界面和数据库以支持“聊天室”(请参阅创建聊天室ID和保护聊天室ID),以及在用户名和用户名之间实现一个安全的、可声明的映射(请参阅)。谢谢。如何获取不是当前登录用户的接收者的uid?如果你不介意我问的话,我会把这个放在哪里?