public Task<NSObject> RunTransactionAsync (FirestoreUpdateHandler updateHandler) { var tcs = new TaskCompletionSource<NSObject> (); RunTransaction (updateHandler, (result_, error_) => { if (error_ != null) tcs.SetException (new NSErrorException (error_)); else tcs.SetResult (result_); }); return tcs.Task; }
public void RunTransaction (FirestoreUpdateHandler updateHandler, TransactionCompletionHandler completion) { _RunTransaction (InternalUpdateHandler, completion); NSObject InternalUpdateHandler (Transaction transaction, IntPtr pError) { if (updateHandler == null) return null; var result = updateHandler (transaction, out NSError error); if (error != null) Marshal.WriteIntPtr (pError, error.Handle); return result; } }