Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

419
Vistas
Desea enviar imágenes usando el chat dotado con mensajes, y almacenarlas en firebase y recuperarlas, y mostrarlas en el chat

Quiero enviar imágenes con mensajes usando el chat de regalo, Aquí está mi código:

 // for send message const onSend =(messageArray) => { const msg = messageArray[0] const mymsg = { ...msg, sentBy:user.uid, sentTo:uid, createdAt:new Date() } setMessages(previousMessages => GiftedChat.append(previousMessages,mymsg)) const docid = uid > user.uid ? user.uid+ "-" + uid : uid+"-"+user.uid firestore().collection('chatrooms') .doc(docid) .collection('messages') .add({...mymsg,createdAt:firestore.FieldValue.serverTimestamp()}) }

desde aquí estoy enviando mensajes y almacenándolos en firebase y mostrando cómo recuperarlos desde firebase.

 // display code <GiftedChat messages={messages} onSend={text => onSend(text)} user={{ _id: user.uid, }} alwaysShowSend placeholder='Message' renderSend={renderSend} renderBubble={(props)=>{ return <Bubble {...props} wrapperStyle={{ right: { backgroundColor:"#efc100", }, left:{ marginLeft: -40 } }} /> }}

gracias de antemano

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Dividamos el problema en pequeños subproblemas.

  1. Obtener imagen de la biblioteca de medios
 const pickImageasync = async () => { const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync(); let imgURI = null; const hasStoragePermissionGranted = status === "granted"; if(!hasStoragePermissionGranted) return null; let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ImagePicker.MediaTypeOptions.Images, allowsEditing: true, aspect: [4, 4], quality: 1, }); if (!result.cancelled) { imgURI = result.uri; } return imgURI; };
  1. Sube una imagen a Firebase Storage
 const uploadImageToStorage= async (imgURI ) => { const ref = `messages/${[FILE_REFERENCE_HERE]}` const imgRef = firebase.storage().ref(ref); const metadata = { contentType: "image/jpg" }; // Fetch image data as BLOB from device file manager const blob = await new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.onload = function () { resolve(xhr.response); }; xhr.onerror = function (e) { reject(new TypeError("Network request failed")); }; xhr.responseType = "blob"; xhr.open("GET", imgURI, true); xhr.send(null); }); // Put image Blob data to firebase servers await imgRef.put(blob, metadata); // We're done with the blob, close and release it blob.close(); // Image permanent URL const url = await imgRef.getDownloadURL(); return url };
  1. Actualizar documento de mensaje con imagen URI permanente
 const localImgURI = "file://path_to_file" // Replace with real path of uploaded image const imgPermanentURL = await uploadImageToStorage(localImgURI) firestore().collection('chatrooms') .doc(docid) .collection('messages') .doc(messageId).update({image:imgPermanentURL})
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda