firebase - Proprietatea 'value' nu există în tipul 'SecretParam' al gcloud param defineSecret în TypeScript
Scriu o funcție Firestore pentru care vreau să setez niște secrete. Am citit în documentația Firebase cum să configurez un parametru secret:
https://firebase.google.com/docs/functions/config-env#secret_parameters
așa că am încercat în felul acesta:
import * as functions from "firebase-functions";
import {defineSecret} from 'firebase-functions/params';
const someToken = defineSecret("TOKEN_NAME");
import * as express from "express";
import {bootstrap, services} from "./bootstrap";
export const app = express();
app.use(express.json());
app.get("/", (req, res) => {
res.sendStatus(200);
});
app.post("/", async (req, res) => {
if (!req.body) {
res.send("json body missing!");
return;
}
await bootstrap(someToken.value());
services.useGraphQL?.getEntity(req.body).then(
(response) => {
res.status(200).send(response);
},
() => {
console.error(`Error while ${req.body.command}`);
res.sendStatus(500);
});
}
);
export default functions
.runWith({secrets: ["TOKEN_NAME"]})
.https.onRequest(app);
Problema/întrebarea mea este că „someToken.value()” aruncă eroarea „Proprietatea 'value' nu există pe tipul 'SecretParam'”. Deci, ce greșesc? Ce pot să fac pentru a o face corect?
Am încercat să citesc valoarea obiectului diferit, dar totul s-a finalizat în mai multe erori de tip.
Răspuns #1
Când se accesează secretele, acestea sunt adăugate ca variabile de mediu pentru funcția cloud. Ele pot fi accesate prin process.env.MY_SECRET în acest exemplu.
De asemenea, ai serializat în JSON obiectul someToken și l-ai înregistrat? Asta ți-ar fi permis să vezi care era structura obiectului și ar putea dezvălui cheia obiectului utilizabilă dacă cele de mai sus nu funcționează.