Fetch quiz questions from Firestore
This MR introduces the new function that retrieves all documents from Question
collection in Firestore. It maps the fetch data to the Question
DTO. Default values are provided for pottentially missing text fields (description
, explanation
, title
) and the image field.
Using the function
import Question from '@/dtos/Question'
import { fetchAllQuestions } from '@/services/fetchAllQuestions'
export default function QuizScreen() {
const [questions, setQuestions] = useState<Question[]>([])
const loadQuestions = async () => {
try {
const fetchedQuestions = await fetchAllQuestions()
setQuestions(fetchedQuestions)
} catch (err: any) {
setQuestions([])
}
}
useEffect(() => {
loadQuestions()
}, [])
return (
<View>
<Text>Quiz Questions</Text>
<FlatList
data={questions}
keyExtractor={(item) => item.id}
renderItem={({ item }) => (
<View>
<Text>{item.title}</Text>
<Text>
{item.description}
</Text>
<Text>{item.answers}</Text>
<Text>
{item.rightAnswer}
</Text>
<Text>
{item.explanation}
</Text>
</View>
)}
/>
</View>
)
}