Документация слишком сложна для меня, чтобы понять. В нем показано, как загрузить файл из облачного хранилища в облачные функции, манипулировать им, а затем загрузить новый файл в облачное хранилище. Я просто хочу увидеть основные минимальные инструкции по загрузке файла из облачных функций в облачное хранилище. Почему это не работает:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.storage = functions.firestore.document('Test_Value').onUpdate((change, context) => {
var metadata = {
contentType: 'text',
};
admin.storage().ref().put( {'test': 'test'}, metadata)
.then(function() {
console.log("Document written.");
})
.catch(function(error) {
console.error(error);
})
});
Сообщение об ошибке admin.storage(...).ref is not a function
. Я предполагаю, что firebase-admin
включает Firestore, но не Storage? Вместо firebase-admin
я должен использовать @google-cloud/storage
? Почему это не работает:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const {Storage} = require('@google-cloud/storage')();
const storage = new Storage();
admin.initializeApp();
exports.storage = functions.firestore.document('Test_Value').onUpdate((change, context) => {
storage.bucket().upload( {'test': 'test'} , {
metadata: {
contentType: 'text'
}
})
});
Я даже не могу развернуть этот код, сообщение об ошибке
Error parsing triggers: Cannot find module './clone.js'
Видимо, отсутствует зависимость от модуля npm? Но модуль не называется clone.js
? Я пытался требовать child-process-promise
, path
, os
и fs
; никто не исправил отсутствующую clone.js
ошибку.
Почему у admin.initializeApp();
нет параметров, когда в моем файле index.html
есть:
firebase.initializeApp({
apiKey: 'swordfish',
authDomain: 'myapp.firebaseapp.com',
databaseURL: "https://myapp.firebaseio.com",
projectId: 'myapp',
storageBucket: "myapp.appspot.com"
});
Другая проблема, с которой я сталкиваюсь:
npm list -g --depth=0
/Users/TDK/.nvm/versions/node/v6.11.2/lib
├── child_process@1.0.2
├── UNMET PEER DEPENDENCY error: ENOENT: no such file or directory, open '/Users/TDK/.nvm/versions/node/v6.11.2/lib/node_modules/firebase-admin/package.json
├── firebase-functions@2.1.0
├── firebase-tools@6.0.1
├── firestore-backup-restore@1.3.1
├── fs@0.0.2
├── npm@6.4.1
├── npm-check@5.9.0
├── protractor@5.4.1
├── request@2.88.0
└── watson-developer-cloud@3.13.0
Другими словами, что-то не так с firebase-admin
или с Node 6.11.2
. Должен ли я использовать Node Version Manager, чтобы вернуться к более старой версии Node?