title: Set the location path to Firebase Storage from a Google Cloud Function?
body: <p>I'm working on getting an audiofile from Google Text-to-Speech and then writing the file to Firebase Storage. I don't understand where I specify the path to the location in Storage. I tried:</p>
  
  <pre class="lang-js prettyprint-override"><code>
      const bucket = storage.bucket('myProject-cd99d.appspot.com/Audio/Spanish/test.ogg');
  
  </code></pre>
  
  <p>but I get an error message: <code>TypeError: Path must be a string</code>. Here's the cloud function:</p>
  
  <pre class="lang-js prettyprint-override"><code>exports.Google_T2S = functions.firestore.document('Users/{userID}/Spanish/T2S_Request').onUpdate((change, context) =&gt; { 
    if (change.after.data().word != undefined) {
  
      // Performs the Text-to-Speech request
      async function test() {
        try {
          const word = change.after.data().word; // the text
          const longLanguage = 'Spanish';
          const audioFormat = '.mp3';
          // copied from https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries#client-libraries-usage-nodejs
          const fs = require('fs');
          const util = require('util');
          const textToSpeech = require('@google-cloud/text-to-speech'); // Imports the Google Cloud client library
          const client = new textToSpeech.TextToSpeechClient(); // Creates a client
  
          let myWordFile = word.replace(/ /g,"_"); // replace spaces with underscores in the file name
          myWordFile = myWordFile.toLowerCase(); // convert the file name to lower case
          myWordFile = myWordFile + audioFormat; // append .mp3 to the file name;
  
          // boilerplate copied from https://cloud.google.com/blog/products/gcp/use-google-cloud-client-libraries-to-store-files-save-entities-and-log-data
          const {Storage} = require('@google-cloud/storage');
          const storage = new Storage();
          const bucket = storage.bucket('myProject-cd99d.appspot.com/Audio/Spanish/test.ogg');
  
          const request = {     // Construct the request
            input: {text: word},
            // Select the language and SSML Voice Gender (optional)
            voice: {languageCode: 'es-ES', ssmlGender: 'FEMALE'},
            // Select the type of audio encoding
            audioConfig: {audioEncoding: 'MP3'},
          };
  
          const [response] = await client.synthesizeSpeech(request);
          // Write the binary audio content to a local file
          // response.audioContent is the downloaded file
          await bucket.upload(response.audioContent, {
            metadata: 'public, max-age=31536000'
          })
          .then(function() {
            console.log('Uploaded file.');
          })
          .catch(function(error) {
            console.error(error);
          });
        }
        catch (error) {
          console.error(error);
        }
      }
      test();
    } // close if
    return 0;
  });
  </code></pre>
  
  <p>I also need to return the main function.</p>