【发布时间】:2020-08-28 02:47:49
【问题描述】:
我一直致力于 React Native 和 Firebase 项目。所有身份验证和数据库都在使用 Firebase 服务。出于某种原因,在我实现 Loading 状态后,我开始从控制台收到此错误消息。
这是 React Native 错误
这是我真正的聊天组件。
如果我只提交 useEffects 部分,项目就会恢复工作。
const Chat = () => {
const navigation = useNavigation();
const user = useSelector(({ auth }) => auth.user);
const [unreads, setUnreads] = useState(0);
useEffect(() => {
firestore()
.collection('threads')
.where('users', 'array-contains', user?.uid)
.orderBy('latestMessage.createdAt', 'desc')
.onSnapshot(threadsSnapshot => {
let count = 0;
setUnreads(0);
threadsSnapshot?.docs?.map(threadSnapshot => {
firestore()
.collection('threads')
.doc(threadSnapshot.id)
.collection('messages')
.where('read', '==', false)
.onSnapshot(messages => {
messages.docs.map(message => {
if (message.data().user._id !== user?.uid) {
count++;
}
});
setUnreads(count);
});
});
});
}, [user]);
return (
<TouchableOpacity onPress={() => navigation.navigate('Messenger')}>
<FontAwesomeIcon
style={style.menuContainerIcon}
icon={faInbox}
size={25}
color="#14121E"
/>
{unreads > 0 && (
<Badge
value={unreads > 99 ? '99+' : unreads}
status="success"
containerStyle={style.badgeMessages}
/>
)}
</TouchableOpacity>
);
};
const Header = ({
setModalVisible,
hideOptions,
title,
hideChat,
hideFinder,
hideBack,
}) => {
const navigation = useNavigation();
return (
<View style={style.container}>
{!hideBack && (
<IconButton icon="arrow-left" onPress={() => navigation.goBack()} />
)}
<TouchableOpacity onPress={() => navigation.navigate('Home')}>
<Text style={style.text}>{title}</Text>
</TouchableOpacity>
<View style={style.menuContainer}>
{!hideFinder && (
<TouchableOpacity onPress={() => navigation.navigate('Messenger')}>
<FontAwesomeIcon
style={style.menuContainerIcon}
icon={faSearch}
size={20}
color="#14121E"
/>
</TouchableOpacity>
)}
{!hideOptions && (
<TouchableOpacity onPress={() => setModalVisible(true)}>
<FontAwesomeIcon
style={style.menuContainerIcon}
icon={faEllipsisH}
size={20}
color="#14121E"
/>
</TouchableOpacity>
)}
{!hideChat && <Chat />}
</View>
</View>
);
};
有人知道 firebase 函数需要哪些参数吗?
【问题讨论】:
标签: javascript firebase react-native google-cloud-firestore react-redux