我在执行此教程时遇到以下错误https://www.youtube.com/watch?v=QiTq5WrWoJw&t=8176s
我在将我的个人消息连接到我的firebase应用程序时遇到了问题。我在控制台中的错误主要集中在以下代码上。
我试图发送一个信息在一个individiual“房间”内的firebase,所以一个收集的房间与独特的信息在每个房间内。
function ChatInput(channelName, channelId) {
const [input, setInput] = useState('');
const sendMessage = (e) => {
e.preventDefault(); //prevents refresh of the page
if(!channelId) {
return false;
}
db.collection("rooms").doc(channelId).collection("messages").add({
message: input,
timestamp: firebase.firestore.FieldValue.serverTimestamp(),
user: 'Daniel Peters',
userImage:'https://wallpapercave.com/wp/j8Sd6Uv.jpg',
});
setInput('');
};
return (
<ChatInputContainer>
<form>
<input value={input} onChange={(e) => setInput(e.target.value)} placeholder= {`Message #${channelName}`} />
<Button hidden type='submit' onClick={sendMessage}>
SEND
</Button>
</form>
</ChatInputContainer>
)
}
export default ChatInput;
我已经尝试了不同版本的redux和firebase,看看这是否是问题所在,但问题显然没有解决。任何指导都将是伟大的!
3条答案
按热度按时间r9f1avp51#
我只是面对这个问题,最终我的“错误”是我试图使用数字ID作为Firestore文档密钥。
因此,这个函数给出了
u.indexOf is not a function
错误:这一个工作的地方:
我只是用引号把第二个字符串括起来,希望这能帮到别人!
56lgkhnf2#
我通过将键名从数字更改为字符串修复了此错误:
jchrr9hc3#
在本例中,生成channelId字符串,然后传递给doc()
就像:
}
导出默认聊天输入;