Я пытаюсь создать сервер с node js, который обрабатывает данные от клиента и загружает их в Firestore. Я еще новенький. Это код моего сервера:
const express = require('express');
const multer = require('multer');
const path = require('path');
const admin = require('firebase-admin');
let app = express();
let upload = multer();
let serviceAccount = require('./psylocke-774e2adbf0e5.json');
admin.initializeApp({
credentials: admin.credential.cert(serviceAccount)
});
let db = admin.firestore();
let port = process.env.PORT || 8000;
app.route('/interface').get((_, res) => {
try {
res.sendFile(__dirname + '/interface.html');
} catch (e) {
res.status(404).send(e.message);
}
})
app.post('/upload', upload.any(), (req, res) => {
let test = {
name:'juan',
age:15
};
db.collection('roots').doc('sampleroot').set(test).then((mess) => {
console.log("I went through hwere");
res.send('it worked');
}).catch((err) => {
res.send('it didnt work');
console.log(err);
});
})
app.listen(port, () => console.log(`Server running on port ${port}`));
А это мой JSON-файл проекта (который мне пришлось скачать с облачных платформ Google):
{
"type": "service_account",
"project_id": "psylocke",
"private_key_id": "<id>",
"private_key": "<private key>",
"client_email": "[email protected]",
"client_id": "113260833969613996508",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-ja1c3%40psylocke.iam.gserviceaccount.com"
}
И я получаю следующую ошибку:
Error: Unable to detect a Project Id in the current environment.
To learn more about authentication and Google APIs, visit:
https://cloud.google.com/docs/authentication/getting-started
Странно, что я получаю эту ошибку, поскольку идентификатор проекта фактически указан в json-документе. Кто-нибудь знает, что происходит?