Как отправить изображение из хранилища Firebase в Microsoft Emotion API (Cognitive Service)

Я храню изображения, загруженные в приложение, в хранилище Firebase. Затем мне нужно получить изображение и отправить его в Cognitive Service Microsoft (API эмоций). Я попытался отправить URL-адрес загрузки изображения в API, но этого не произошло - это выдает ошибку 400. Как я могу отправить изображение из хранилища Firebase в Emotion API.

Ниже приведен код, который хранит загруженный файл в хранилище Firebase... Мне нужно продолжить код в конце этого фрагмента кода.

 download_photo_btn.addEventListener("click", function(e) {
    var user = firebase.auth().currentUser;
    var uid;

    if (user != null) {
    uid = user.uid;  // The user's ID, unique to the Firebase project. Do NOT use
                     // this value to authenticate with your backend server, if
                     // you have one. Use User.getToken() instead.
    }
    var snap = takeSnapshot();
    var blob = dataURItoBlob(snap);

    // Create a root reference
    var storageRef = firebase.storage().ref();

    // Initial UID for images
    var selfieID = 0;

    // Create a reference to 'mountains.jpg'
    var selfieRef = storageRef.child(uid + '-' + selfieID++ + '.png');

    // Create a reference to 'images/mountains.jpg'
    var selfieImagesRef = storageRef.child('/selfies/' + uid  + '-' + selfieID++ + '.png');


    // While the file names are the same, the references point to different files
    selfieRef.name === selfieImagesRef.name            // true
    selfieRef.fullPath === selfieImagesRef.fullPath    // false

    // send image file to firebase storage
    var file = blob; 
    var uploadTask = selfieImagesRef.put(file);
  });

1 ответ

Решение

У вас есть два варианта:

  • Поскольку у вас уже есть это под рукой, вы можете загрузить то же самое blob к API эмоций. Это означает, что вы будете загружать данные изображений дважды, один раз в Firebase и один раз в Microsoft.
  • Вы можете получить публичный URL для вашего элемента хранения. Это соответствующая документация. Обратите внимание, что вам может потребоваться настроить разрешение вашего хранилища для Cognitive Services для доступа к изображению.

Некоторая дополнительная информация здесь: Firebase Storage - получение URL изображения

Другие вопросы по тегам