Firebase mittels Admin SDK und Typescript (Node.js)

  • Antworten:0
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 169

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

Beantworte die Frage als Erster
Empfohlene Artikel bei NextPit