Я запустил проект Firebase для безсерверного веб-приложения.Со стороны клиента я могу получить доступ к базе данных Firestore.Со стороны сервера я написал функцию для вызова по http-запросу.Функция пытается получить доступ к базе данных с помощью объекта Firestore, но не удается, потому что объект Firestore не имеет функции collection (), как мне кажется, должна.В выводе я показываю содержимое объекта Firestore.
const functions = require('firebase-functions');
exports.noteList = functions.https.onRequest((req, res) => {
db = functions.firestore;
console.dir(db);
db.collection("notes").listDocuments().then(documentRefs => {
return db.getAll(documentRefs);
}).then(documentSnapshots => {
res.json(documentSnapshots);
});
});
вывод:
{ provider: 'google.firestore',
service: 'firestore.googleapis.com',
defaultDatabase: '(default)',
document: [Function: document],
namespace: [Function: namespace],
database: [Function: database],
_databaseWithOpts: [Function: _databaseWithOpts],
_namespaceWithOpts: [Function: _namespaceWithOpts],
_documentWithOpts: [Function: _documentWithOpts],
DatabaseBuilder: [Function: DatabaseBuilder],
NamespaceBuilder: [Function: NamespaceBuilder],
snapshotConstructor: [Function: snapshotConstructor],
beforeSnapshotConstructor: [Function: beforeSnapshotConstructor],
DocumentBuilder: [Function: DocumentBuilder] }
Function crashed
TypeError: db.collection is not a function
Для сравнения, вот как я обращаюсь к базе данных со стороны клиента, это работает:
function main() {
var db = firebase.firestore();
db.collection("global").doc("public").get().then(
function(r) {
var number_span = document.getElementById("number_span");
data = r.data();
number_span.textContent = "" + data.counter;
});
}
КонечноОбъект Firebase получается по-разному.Может быть, какая-то конфигурация отсутствует?