public Task <IDocumentReference> AddAsync <T>(T data)
        {
            var tcs = new TaskCompletionSource <IDocumentReference>();

            DocumentReference?document = null;

            document = _collectionReference.AddDocument(data.ToNativeFieldValues(), (error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(new DocumentReferenceWrapper(document !));
                }
        public Task AddDocumentAsync(object data)
        {
            var tcs = new TaskCompletionSource <bool>();

            _collectionReference.AddDocument(data.ToNativeFieldValues(), (error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
示例#3
0
        public Task DeleteDocumentAsync()
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.Delete().AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#4
0
        public Task <IDocumentSnapshot> GetAsync(Source source)
        {
            var tcs = new TaskCompletionSource <IDocumentSnapshot>();

            _documentReference.GetDocument(source.ToNative(), (snapshot, error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(new DocumentSnapshotWrapper(snapshot));
                }
            });

            return(tcs.Task);
        }
示例#5
0
        public Task SetAsync <T>(T documentData, params FieldPath[] mergeFields)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.SetData(documentData.ToNativeFieldValues(), mergeFields.Select(x => x.ToNative()).ToArray(), (error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
示例#6
0
        public Task CommitAsync()
        {
            var tcs = new TaskCompletionSource <bool>();

            _writeBatch.Commit().AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#7
0
        public Task SetDataAsync(object documentData, params string[] mergeFields)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.SetData(documentData.ToNativeFieldValues(), mergeFields, (error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
示例#8
0
        public Task UpdateDataAsync(FieldPath field, object value, params object[] moreFieldsAndValues)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.Update(field.ToNative(), value.ToNativeFieldValue(), moreFieldsAndValues.Select(x => x.ToNativeFieldValue()).ToArray()).AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
        public Task <IQuerySnapshot> GetDocumentsAsync(Source source)
        {
            var tcs = new TaskCompletionSource <IQuerySnapshot>();

            _query.GetDocuments(source.ToNative(), (snapshot, error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(snapshot == null ? null : new QuerySnapshotWrapper(snapshot));
                }
            });

            return(tcs.Task);
        }
示例#10
0
        public Task SetAsync <T>(T documentData, params string[] mergeFields)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.Set(documentData.ToNativeFieldValues(), SetOptions.MergeFields(mergeFields)).AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#11
0
        public Task UpdateAsync <T>(T fields)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.UpdateData(fields.ToNativeFieldValues(), (error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
示例#12
0
        public Task DeleteAsync()
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.DeleteDocument((error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
示例#13
0
        public Task UpdateDataAsync(object fields)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.Update(fields.ToNativeFieldValues()).AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#14
0
        public Task SetDataAsync(object documentData, params FieldPath[] mergeFields)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.Set(documentData.ToNativeFieldValues(), SetOptions.MergeFieldPaths(new JavaList <Firebase.Firestore.FieldPath>(mergeFields.Select(x => x.ToNative())))).AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#15
0
        public Task CommitAsync()
        {
            var tcs = new TaskCompletionSource <bool>();

            _writeBatch.Commit((error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
        public Task <IQuerySnapshot> GetAsync()
        {
            var tcs = new TaskCompletionSource <IQuerySnapshot>();

            _query.GetDocuments((snapshot, error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(new QuerySnapshotWrapper(snapshot !));
                }
            });

            return(tcs.Task);
        }
示例#17
0
        public Task SetAsync <T>(T documentData, bool merge)
        {
            var tcs = new TaskCompletionSource <bool>();

            _documentReference.SetData(documentData.ToNativeFieldValues(), merge, (error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
示例#18
0
        public Task <IQuerySnapshot> GetDocumentsAsync()
        {
            var tcs = new TaskCompletionSource <IQuerySnapshot>();

            _collectionReference.GetDocuments((snapshot, error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(snapshot == null ? null : new QuerySnapshotWrapper(snapshot));
                }
            });

            return(tcs.Task);
        }
示例#19
0
        public Task <IQuerySnapshot> GetDocumentsAsync(Source source)
        {
            var tcs = new TaskCompletionSource <IQuerySnapshot>();

            _query.Get(source.ToNative()).AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    var snapshot = task.Result.JavaCast <QuerySnapshot>();
                    tcs.SetResult(snapshot == null ? null : new QuerySnapshotWrapper(snapshot));
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#20
0
        public Task <IDocumentSnapshot> GetDocumentAsync()
        {
            var tcs = new TaskCompletionSource <IDocumentSnapshot>();

            _documentReference.Get().AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    var snapshot = task.Result.JavaCast <DocumentSnapshot>();
                    tcs.SetResult(snapshot == null ? null : new DocumentSnapshotWrapper(snapshot));
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#21
0
        public Task <IQuerySnapshot> GetAsync()
        {
            var tcs = new TaskCompletionSource <IQuerySnapshot>();

            _query.Get().AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    var snapshot = task.Result.JavaCast <QuerySnapshot>();
                    tcs.SetResult(new QuerySnapshotWrapper(snapshot !));
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#22
0
        public Task AddDocumentAsync(object data)
        {
            var tcs = new TaskCompletionSource <bool>();

            _collectionReference.Add(data.ToNativeFieldValue())
            .AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#23
0
        public Task UpdateAsync(FieldPath field, object?value, params object?[] moreFieldsAndValues)
        {
            var fields = Field.CreateFields(field, value, moreFieldsAndValues);

            var tcs = new TaskCompletionSource <bool>();

            _documentReference.UpdateData(fields, (error) =>
            {
                if (error != null)
                {
                    tcs.SetException(ExceptionMapper.Map(error));
                }
                else
                {
                    tcs.SetResult(true);
                }
            });

            return(tcs.Task);
        }
        public Task <IDocumentReference> AddAsync <T>(T data)
        {
            var tcs = new TaskCompletionSource <IDocumentReference>();

            _collectionReference.Add(data.ToNativeFieldValues())
            .AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    var document = task.Result.JavaCast <DocumentReference>();
                    tcs.SetResult(new DocumentReferenceWrapper(document !));
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }
示例#25
0
        public Task SetDataAsync(object documentData, bool merge)
        {
            if (!merge)
            {
                return(SetDataAsync(documentData));
            }

            var tcs = new TaskCompletionSource <bool>();

            _documentReference.Set(documentData.ToNativeFieldValues(), SetOptions.Merge()).AddOnCompleteListener(new OnCompleteHandlerListener((task) =>
            {
                if (task.IsSuccessful)
                {
                    tcs.SetResult(true);
                }
                else
                {
                    tcs.SetException(ExceptionMapper.Map(task.Exception));
                }
            }));

            return(tcs.Task);
        }