2017-06-05 16 views
5

Tôi muốn thực hiện thao tác tệp bằng các chức năng đám mây của Firebase bằng cách nghe một sự kiện được kích hoạt bởi functions.database.ref().onWrite() (thay vì functions.storage.object().onChange()).Tôi làm cách nào để truy cập bộ nhớ Firebase từ bên trong Chức năng đám mây do cơ sở dữ liệu kích hoạt?

Tôi nhận thấy hầu hết các mẫu sử dụng chức năng đám mây functions.storage.object().onChange() để kích hoạt một chức năng đám mây để thao tác với tệp. Có cách nào để lấy số storageRef từ trong phạm vi functions.database.ref() và thực hiện thao tác tệp từ đó không?

+0

Xem thêm https://stackoverflow.com/questions/42956250/get-download-url-from-file-uploaded-with-cloud-functions-for- firebase –

Trả lời

6

Để truy cập Bộ nhớ Firebase từ bên trong cơ sở dữ liệu của bạn được kích hoạt Chức năng đám mây, bạn có thể sử dụng Google Cloud SDK.

Từ một trong những ứng dụng của tôi:

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

... 
exports 
.emojifyStory = functions.database.ref('/stories/{storyId}') 
.onWrite(function(event) { 
      const filePath = event.data.val().filePath; 
      const file = gcs.bucket(bucket).file(filePath); 

      // Use the Vision API to detect labels 
      return visionClient.detectLabels(file) 
        .then(data => { 
     ... 
+5

@FrankvanPuffeken Tôi không hiểu được phần này bằng cách sử dụng Google Cloud SDK, không thể tìm ra cách lấy 'bucket' từ Cloud Function. Rõ ràng với tôi bây giờ 'bucket' chỉ là' bucket = functions.config(). Firebase.storageBucket'. Cảm ơn! –

Các vấn đề liên quan