firebase / firebase/firebase-admin-node

[FR] Cloud Tasks Testing, Emulation, Management

Offen
#1,830 1 Kommentar 4 Reaktionen 1 zugewiesene Person Beansprucht von @inlined Auf GitHub ansehen
api: functions type: feature request
Vorherrschende Sprache
TypeScript
Sterne
1.7k
Forks
419
Ø Merge
3 T. 10 Std.
Gemergte PRs (30 T.)
16

Beschreibung

First of all, thx for improvements made for Firebase users with regards to Cloud Tasks product.

However there are few crucial missing pieces:

### Emulator support
Based on current documentation, only way to use cloud tasks within emulated environment is to call them via HTTP endpoint.

We can exploit this and make basic function to enqueue tasks in our code:
```
export async function enqueueTask(functionName: string, data: any) {
const url = `http://0.0.0.0:5001/${process.env.GCLOUD_PROJECT}/${process.env.FUNCTION_REGION}/${functionName}`;
console.log(url);
const res = await axios.default({
method: 'POST', url: url, data: {
'data': data,
}
},);

return res;
}
```

But this requires flags inside code, to not use internal SDK but this function. Surely we can have emulator support calling it in same manner, at least.

### Testing
Cloud Tasks cannot be "wrapped" in same manner as triggers / cloud functions to write integration tests.
Again, only option is to use function mentioned above to "call" task, but HTTP endpoint DOES NOT return any meaningful response.

It waits until task is completed, BUT it does NOT return task's payload, nor rejects/handles thrown Errors.

### Tasks Management
And finally, current equeue menthod DOES NOT return TaskID, and SDK does not provide any methods to:
- identify tasks
- cancel tasks
- check their status

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.