pub async fn run_transaction<F, Fut, T, Err>(
    firestore: &Firestore,
    update_fn: F
) -> Result<(), FirestoreError>where
    F: FnMut(Transaction) -> Fut + 'static,
    Fut: Future<Output = Result<T, Err>>,
    T: Into<JsValue>,
    Err: Into<JsValue>,