Search code examples
firebasereact-nativegoogle-cloud-functionsreact-native-firebase

Why is firebase cloud function invoked in react-native not logging output?


I have a firebase cloud function:

exports.copyImage = functions.region('us-central1').https.onCall(async (data, context) => {
    const { auth } = context || {}
    const { uid } = auth || {}

    if (!uid) throw 'Unauthenticated'

    const srcBucketName = <bucket-name>'
    const destinationBucketName = '<bucket-name'
    const { imageFile, archiveId, sessionId } = data

    const srcFileName = `message-attachments/${imageFile}` 
    const destinationFileName = `archived-attachments/${uid}/${imageFile}`

    console.log(`source path: ${srcFileName}\ndestination path: ${destinationFileName}`)

    const storage = new Storage()
    storage
        .bucket(srcBucketName)
        .file(srcFileName) 
        .copy(storage.bucket(destinationBucketName).file(destinationFileName))
        .then(() => {
            console.log(`COPY SUCCESS: gs://${destinationBucketName}/${destinationFileName}`)
        })
        .catch(err => console.error('COPY ERROR: ' + err))
})

and I have a react-native project (v61.5) using react-native-firebase (v5) which calls this function:

firebase.functions().httpsCallable('copyFile')({
  imageFile: fileName,
  archiveId: uid,
  sessionId
})
.then(() => {
 // copied file
 const ref = firebase.storage()
   .ref('archived-attachments')
   .child(uid)
   .child(fileName)
 ref.getDownloadURL()
   .then(url => {
     // do more
   })
   .catch(err => alert(err.message))
 })
 .catch(err => {
 // copy error
})

the problem is im not getting any log output in the functions console when executing this function. the functions been successfully deployed as well. Any advice?


Solution

  • Updating my comment in this answer as it solves the issue.

    The issue occurred because Jim has been triggering a different function copyFile instead of copyImage.

    mismatch between the function name exports.copyImage vs httpsCallable('copyFile').

    Updating the function name solved the issue!