Sou um programador React Native e estou tendo um problema ilógico, pois estou adicionando duas capturas de tela do Firestore, onde há uma coleção e alguns documentos. Quando obtenho a coleção usando o código ou o construtor de consultas, recebo apenas um item, mas ainda não consigo entender qual é o problema. Meu código React Native está...
useEffect(() => {
console.log('Starting useEffect');
const fetchData = async () => {
const querySnapshot = await firestore()
.collection('chatRooms')
.get();
console.log('All docs count:', querySnapshot.size);
console.log('All document IDs:');
querySnapshot.forEach(doc => {
console.log(`${doc.id}`);
});
// Filter client-side for rooms containing the user
querySnapshot.forEach(doc => {
const data = doc.data();
console.log(`Doc ${doc.id} exists:`, doc.exists);
console.log(`Doc ${doc.id} data:`, data);
console.log(`Doc ${doc.id} data keys:`, Object.keys(data));
console.log(`Doc ${doc.id} empty?:`, Object.keys(data).length === 0);
});
};
fetchData();
}, []);
Como mostrado, tenho 4 documentos, mas estou recebendo apenas 1. Por favor, me avise se alguém souber desse problema.
HvN0az1wtzgNqnxkBm14z274LiO2_ai_1
HvN0az1wtzgNqnxkBm14z274LiO2_ai_10
HvN0az1wtzgNqnxkBm14z274LiO2_ai_12
Meus IDs de Doc.
A coleção "chatRooms" não contém "alguns documentos", mas apenas um documento, o primeiro. Então, o que você fez foi criar um documento, que por sua vez contém uma subcoleção chamada "messages", que contém 7 documentos. O outro documento simplesmente não existe. Eu sei disso porque os outros 3 documentos estão escritos em itálico , o que significa que você criou uma subcoleção dentro deles sem criar o documento pai primeiro, daí o resultado.
Gerar programaticamente um ID para um documento não significa que você o criou no Firestore. Lembre-se de que documentos e subcoleções do Firestore não funcionam como arquivos e diretórios do sistema de arquivos, como você pode estar pensando. Criar uma subcoleção em um documento não cria implicitamente nenhum documento pai. As subcoleções não estão vinculadas de forma alguma a um documento pai.
Então você vê esses 3 documentos dessa forma, porque o Console do Firebase indica que há alguns dados sob o local, então você pode navegar mais. É isso. Se você quiser obter todos os documentos da coleção "chatRooms", crie-os e o Console e o código no seu projeto retornarão o resultado esperado.