Mam aplikację węzła korzystającą z konta usługi firebase. Chciałbym wdrożyć aplikację na Heroku, ale nie chcę, aby moje tajne klucze były publiczne. Wdrażam bezpośrednio z publicznego repozytorium github, więc nie chcę dołączać pliku konta usługi do wdrożenia.Wdrażanie aplikacji Firebase z kontem usługi w Heroku (zmienne środowiskowe z dotenv)
Mogę pobrać plik json konta usługi, ustawić każdą właściwość jako zmienną środowiskową, dodać każdą z tych zmiennych do Heroku i wdrożyć ją. Wszystko działa świetnie (po autoryzowaniu nowej domeny Heroku w mojej aplikacji firebase), ale czy jest lepszy sposób na zrobienie tego? To działa, ale było to trochę kłopotliwe (kopiowanie i wklejanie każdej zmiennej i przenoszenie jej). Czy brakuje mi prostszego sposobu na zrobienie tego?
Oto zmiana, którą wprowadzam. Od tej linii, gdzie jest ciągnięcie poświadczeń z pliku:
admin.initializeApp({
credential: admin.credential.cert('./path/firebase-service-account.json'),
databaseURL: "https://my-firebase-app.firebaseio.com"
});
do tego obiektu, który przynosi w wszystkie te same rzeczy od zmiennych środowiskowych:
admin.initializeApp({
credential: admin.credential.cert({
"type": process.env.FIREBASE_TYPE,
"project_id": process.env.FIREBASE_PROJECT_ID,
"private_key_id": process.env.FIREBASE_PRIVATE_KEY_ID,
"private_key": process.env.FIREBASE_PRIVATE_KEY,
"client_email": process.env.FIREBASE_CLIENT_EMAIL,
"client_id": process.env.FIREBASE_CLIENT_ID,
"auth_uri": process.env.FIREBASE_AUTH_URI,
"token_uri": process.env.FIREBASE_TOKEN_URI,
"auth_provider_x509_cert_url": process.env.FIREBASE_AUTH_PROVIDER_X509_CERT_URL,
"client_x509_cert_url": process.env.FIREBASE_CLIENT_X509_CERT_URL
}),
databaseURL: "https://my-firebase-app.firebaseio.com"
});
Czy to jest najlepsze praktyki dla wdrażania aplikacja firebase z kontem serwisowym na Heroku? Do tego celu używam modułu węzła dotenv.
process.env.FIREBASE_CLIENT_x509_CERT_URL - Myślę, że "X" powinien być pisany wielkimi literami – Casey
Tak! Dokonałem edycji. Doceniam, że robisz ten połów. Nadal szukam wskazówek dotyczących najlepszej praktyki. –