アプリでreact-native-gifted-chatを使用してチャット機能を追加しました。現在、firebase から適切にメッセージを送受信できます。ただし、問題は、react-native-gifted-chat
メッセージの送信時刻が常に午前 12:00 と表示されることです。これは、firebase のタイムスタンプを時間に変換できないためです。どうすれば解決できますか?
GiftedChatコンポーネントの使用方法は次のとおりです。
<GiftedChat
messages={this.props.messages}
renderUsernameOnMessage={true}
onSend={messages => this.onSend(messages)}
alwaysShowSend={true}
textInputStyle={styles.composer}
minComposerHeight={40}
minInputToolbarHeight={60}
user={{
_id: this.props.account ?.user ?.uid,
name: this.props.account ?.data ?.fullName,
avatar: this.props.account ?.data ?.avatar
}}
/>
以下は、firestore にメッセージを保存するために使用したコードです。
export const sendMessage = (message, groupId) => {
return async () => {
await firestore().collection('groupMessages').doc(groupId).collection('messages').doc(message._id).set(message).catch((e) => {
throw {message: e.message.replace(`[${e.code}] `, '')}
});
}
}
上記のコードは、 、、およびのmessage
プロパティを含むギフト チャット メッセージです。_id
text
createdAt
user
メッセージが firebase に保存される方法は次のとおりです。
メッセージを表示すると: