Verwenden einer JavaScript Firebase-Funktion zum Ausführen eines Modells in der Google Cloud Platform
Angenommen, Sie haben ein Firebase-Projekt mit Ihrer App verknüpft und Sie haben unter demselben Projekt in der Google Cloud Platform (GCP) ein Modell für maschinelles Lernen erstellt. Jetzt fragen Sie sich vielleicht, wie Sie mithilfe des Modells in GCP über die Firebase-Authentifizierung in der App eine Inferenz durchführen können. Sie können dazu eine JavaScript- Firebase-Funktion verwenden.
(Dies wurde mit Ubuntu 18.04 und Node.js 14 getestet)
0. Voraussetzungen
- Ein mit Ihrer App verknüpftes Firebase-Projekt (z. B. Projekt-ID = {PROJECT_ID})
- Ein Modell für maschinelles Lernen unter demselben Projekt {PROJECT_ID} auf GCP
- Node.js 14 und npm (Sie können sie mit nvm installieren )
Öffnen Sie ein Terminal und führen Sie Folgendes aus.
npm install -g firebase-tools
Angenommen, das lokale Projektverzeichnis ist {LOCAL_DIR} auf dem Desktop. Erstellen Sie es und navigieren Sie dorthin.
mkdir -p ~/Desktop/{LOCAL_DIR}
cd ~/Desktop/{LOCAL_DIR}
Führen Sie die folgenden Befehle nacheinander sorgfältig aus und beachten Sie dabei die Hinweise darunter als Leitfaden für die Navigation durch die von ihnen generierten Eingabeaufforderungen.
firebase login
firebase init firestore
firebase init functions
- Sie werden aufgefordert, sich über den Browser anzumelden und zu authentifizieren.
- Wählen Sie das richtige Firebase-Projekt ( {PROJECT_ID} ) aus, wenn Sie dazu aufgefordert werden.
- Wählen Sie als Sprache JavaScript (js) .
- „ elsint “ ist hierfür nicht notwendig.
- Wählen Sie „Ja“ , um Abhängigkeiten zu installieren.
Wir benötigen das Googleapis- Paket.
cd ~/Desktop/{LOCAL_DIR}/functions
npm i googleapis
Öffnen Sie „ {LOCAL_DIR}/functions/package.json“ mit Ihrer bevorzugten IDE (z. B. VS-Code) und bearbeiten Sie den Abschnitt „ Engines “ wie folgt.
"engines": {
"node": "14"
},
Öffnen Sie „ {LOCAL_DIR}/functions/index.js“ mit Ihrer bevorzugten IDE.
Definieren wir die folgenden Begriffe. Sie sollten diese durch Ihre Daten ersetzen.
- Modellname = {MODEL_NAME}
- Modellregion = {MODEL_REGION} – (Stellen Sie sicher, dass die Modellregion mit der Funktionsregion übereinstimmt; insbesondere für eine bessere Leistung. Standard = us-central1 )
- Firebase-Funktionsname = {ML_FUNCTION}
- Eingabe in die Funktion = Eingabe in das Modell = ein Wörterbuch wie {„key_str“: „val_str“, „key_int“: 2, „key_arr“: [1.25, 0.76, 3.84]}
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
const googleapis_pack = require("googleapis");
const ml = googleapis_pack.google.ml({version:"v1", rootUrl:"https://{MODEL_REGION}-ml.googleapis.com"});
exports.{ML_FUNCTION} = functions.https.onCall(async(data, context)=>
{
const key_str = data.key_str;
const key_int = data.key_int;
const key_arr = data.key_arr;
const instance = {"key_str":key_str, "key_int":key_int, "key_arr":key_arr};
const model = "{MODEL_NAME}";
const { credential } = await googleapis_pack.google.auth.getApplicationDefault();
const modelName = "projects/{PROJECT_ID}/models/" + model;
const results = await ml.projects.predict({
auth: credential,
name: modelName,
requestBody: instance
});
return results.data;
}
);
Gehen Sie zum Terminal und führen Sie Folgendes aus.
cd ~/Desktop/{LOCAL_DIR}
firebase deploy --only functions
PS:
Um herauszufinden, wie Sie eine Firebase-Funktion aus Ihrer App (iOS, Android usw.) aufrufen, können Sie sich diese offizielle Dokumentation von Google ansehen.
Verweise
- https://firebase.google.com/docs/functions/get-started
- https://github.com/nvm-sh/nvm/blob/master/README.md
- https://firebase.google.com/docs/functions/callable

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































