Firebase Cloud function & Cloud Vision API: TypeError: vision.detectText-это не функция


Я пытаюсь использовать API Cloud Vision в облачной функции Firebase для распознавания изображения, хранящегося в хранилище Firebase.

Я импортирую клиентскую библиотеку Google Cloud vision следующим образом

const vision = require('@google-cloud/vision');

А потом я звоню

vision.detectText({ source: { imageUri: 'gs://xxxx.appspot.com/yyyy.JPG' } }) 

Однако я получаю ошибку

TypeError: видение.detectText-это не функция

Первоначально я использовал

vision.textDetection({ source: { imageUri: ... } })

Из этого примера https://cloud.google.com/vision/docs/reference/libraries#client-libraries-install-nodejs но я получил точно такая же ошибка. Затем я прочитал, что textDetection был заменен detectText, но не более успешно

Заранее спасибо

1 2

1 ответ:

Похоже, что вы не вызываете API, как описано в документации. Во-первых, взгляните на пример кода, представленный в документации:

const vision = require('@google-cloud/vision');

// Creates a client
const client = new vision.ImageAnnotatorClient();

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const fileName = 'Local image file, e.g. /path/to/image.png';

// Performs text detection on the local file
client
  .textDetection(fileName)
  .then(results => {
    const detections = results[0].textAnnotations;
    console.log('Text:');
    detections.forEach(text => console.log(text));
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

Сначала нужно создать объект ImageAnnotatorClient, который в качестве метода textDetection() можно вызвать.