From f072d81b5fdb261c7608cd4c2fd28f8ed0713ea4 Mon Sep 17 00:00:00 2001 From: garrettmills Date: Sat, 10 Apr 2021 14:35:11 -0500 Subject: [PATCH] Wrap complex push in trylock --- src/app/FirebaseResource.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/app/FirebaseResource.ts b/src/app/FirebaseResource.ts index 89c257e..fccd8ae 100644 --- a/src/app/FirebaseResource.ts +++ b/src/app/FirebaseResource.ts @@ -20,6 +20,10 @@ export interface FirebaseResourceItem { export class FirebaseResource extends Iterable { protected refName!: RTDBRef + get firebase() { + return Application.getApplication().make(FirebaseUnit) + } + /** Get the Reference for this resource. */ ref(): firebase.database.Reference { return Application.getApplication().make(FirebaseUnit).ref(this.refName) @@ -75,6 +79,8 @@ export class FirebaseResource extends Iterable { + await this.firebase.trylock(this.refName) + await this.ref().transaction((collection) => { if ( !collection ) collection = [] item.seqID = this.findNextId(collection) @@ -97,6 +103,7 @@ export class FirebaseResource extends Iterable