Firebase mittels Admin SDK und Typescript (Node.js)

  • Antworten:1
Volkan Aydin
  • Forum-Beiträge: 187

01.06.2020, 13:48:35 via Website

Hallo zusammen, ich bin ein neuling im bereich Serverseitigem Code, nach dutzenden beispielen die aufYoutube zu finden sind und hunderten seiten mittels firebase.google.com
bin ich immer noch nicht viel schlauer.
einerseits funktionierte ALLES auf dem localhost emulator von Firebase Databse, ich konnte einträge machen oder updaten und löschen, und die anderen einträge wurde n alle vollzogen.
wenn ich aber das ganze Deploy'e kommen nur fehlermeldungen ala (Function execution took 60092 ms, finished with status: 'timeout')
Ich weiss was die Fehlermeldung bedeuted, und nach dem ich den Code hundertmal umgestellt habe, ist es meist schlimmer geworden.
Hier ein einfaches beispiel das nicht funktioniert:

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin'
const serviceAccount = require('../serviceAccount.json')

let userId = "";

admin.initializeApp({
credential: admin.credential.applicationDefault() ,
databaseURL:https://${serviceAccount.project_id}.firebasio.com
});

// const db = admin.database();

// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
export const helloWorld = functions.https.onRequest((request, response) => {
console.log("hallo fucking wordl");
response.send("Hello from Firebase!");
});

export const setPlayerInTeam = functions.database.ref('{userId}/mannschaften/{teamId}/alleSpieler/{spielerId}/')
.onCreate((snapshot,context)=>{
const original = snapshot.val();
userId = context.params.userId;
console.log('userId',userId);
console.log('teamId',context.params.teamId);
console.log('spielerId',context.params.spielerId);
console.log('original.name',original.name);
console.log('Updates',context.params.spielerId," "+context.params.teamId);

const adaNameRef = admin.database().ref();
  adaNameRef.child('test').push({ first: 'Ada', last: 'Lovelace' }).then(function() {
    console.log('Synchronization succeeded');
  })
  .catch(function(error) {
    console.log('Synchronization failed');
  });

 // return adaNameRef;

});
die logs kommen alle an ( die vor dem push() ), die Ids werden richtig erkannt.

wenn ich die constante adaNameRef seperat returne, funktioniert es zwar, aber der push() wird nicht ausgeführt.

kann mir da jemand weiterhelfen? mfg

— geändert am 01.06.2020, 14:26:16

Kommentieren
jeotalline
  • Forum-Beiträge: 14

06.02.2021, 10:58:53 via Website

As a C# dev take TS of course. I would ask you about the project before suggesting solution, but really, there's only one choice for you here :)

Hilfreich?
Kommentieren