Necesito recuperar todos los archivos con identificación específica
mi firestore (estructura)
users/user1/img1 -> [ fileId = img1 , file = img1.jpg ] users/user2/img2 -> [ fileId = img2 , file = img2.jpg ] users/user3/img3 -> [ fileId = img3 , file = img3.jpg ]Encuentro en el documento, los métodos 'getAll' ( https://googleapis.dev/nodejs/firestore/latest/Firestore_.html#getAll )
pero con su ejemplo, no funciona.
Mi código
import storage from "@react-native-firebase/storage"; let docRef1 = storage().doc('/users/user1/img1'); let docRef2 = storage().doc('/users/user2/img2'); return new Promise((resolve, reject) => { // Now we get the references of these images storage().getAll(docRef1, docRef2).then(docs => { resolve() }).catch(function(error) { // Handle any errors console.log('error', error) reject() });Mi error:
TypeError: (0, _storage.default)().doc is not a function. (In '(0, _storage.default)().doc('/products/3799569030005-1.jpg')', '(0, _storage.default)().doc' is undefined)Actualización 1: después de la publicación de Frank van Puffelen modifico mi código para probar con una identificación
import firestore from "@react-native-firebase/firestore"; let docRef1 = firestore().collection('users').doc('user1/img1'); let docRef2 = firestore().doc('/users/user1/img1'); // use with docRef1 or docRef2 docRef2.get().then(docSnapshots => { console.log('AA1 docSnapshots data', docSnapshots.data()) }).catch(err => { console.log('AA2 err', err) }) // error for the docRef1 and docref2 => Error: firebase.firestore().doc(*) 'documentPath' must point to a document.Al llamar a storage() , está utilizando la API para Firebase Storage, que accede a los archivos en Cloud Storage (almacenamiento de archivos). Pero luego dices que quieres acceder a documentos en Cloud Firestore, que es una base de datos de documentos noSQL.
Si bien se puede acceder a Firestore y Storage a través de los SDK de Firebase, están completamente separados y la API de uno no tiene nada que ver con el otro. Si desea acceder a Firestore, use firebase.firestore()... (o simplemente firestore() en react-native-firebase).
El método getAll() al que se vinculó existe en el SDK de Node.js para Firestore. No existe en el SDK de JavaScript/Web ni en el contenedor de react-native-firebase. En esos SDK, tendrá que llamar a get en cada objeto DocumentReference individual, o puede usar una consulta in en FieldPath.documentId() .
El primer enfoque (ya que es el más cercano al código en su pregunta):
let docRef1 = firestore().doc('/users/user1/img1'); let docRef2 = firestore().doc('/users/user2/img2'); Promise.all([docRef1.get(), docRef2.get()]) .then((docSnapshots) => { console.log(docSnapshots[0].data(), docSnapshots[1].data()); });