Как вы немедленно отмените задачу загрузки хранилища Firebase? - PullRequest
1 голос
/ 20 июня 2019

Проблема в том, что я хочу знать, как немедленно отменить загрузочную задачу FirebaseStorage.

Я прочитал https://firebase.google.com/docs/storage/unity/upload-files, но у нее нет примеров того, как отменить загрузочную задачу.

// Data in memory
var custom_bytes = new byte[] { ... };

// Create a reference to the file you want to upload
Firebase.Storage.StorageReference rivers_ref = storage_ref.Child("images/rivers.jpg");

// Upload the file to the path "images/rivers.jpg"
rivers_ref.PutBytesAsync(custom_bytes)
  .ContinueWith ((Task<StorageMetadata> task) => {
    if (task.IsFaulted || task.IsCanceled) {
        Debug.Log(task.Exception.ToString());
        // Uh-oh, an error occurred!
    } else {
        // Metadata contains file metadata such as size, content-type, and download URL.
        Firebase.Storage.StorageMetadata metadata = task.Result;
        string download_url = metadata.DownloadUrl.ToString();
        Debug.Log("Finished uploading...");
        Debug.Log("download url = " + download_url);
    }
});

1 Ответ

2 голосов
/ 20 июня 2019

Метод PutBytesAsync() возвращает System.Task<T>, и они изначально поддерживают отмену. Я бы предложил прочитать Документацию по отмене задач , так как есть некоторые предостережения:

Успешная отмена включает запрашивающий код, вызывающий Метод CancellationTokenSource.Cancel и делегат пользователя своевременное прекращение операции. Вы можете прекратить операция с использованием одного из следующих параметров:

  • Просто вернувшись из делегата. Во многих сценариях это достаточно; однако экземпляр задачи, отмененный таким образом переходы в состояние TaskStatus.RanToCompletion, а не в TaskStatus.Canceled state.

  • Сгенерировав исключение OperationCanceledException и передав ему токен какая отмена была запрошена. Предпочтительным способом сделать это является используйте метод ThrowIfCancellationRequested. Задача, которая отменена таким образом переходит в состояние Отменено, которое вызывает код можно использовать для проверки того, что задача ответила на запрос отмены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...