如何使用C#将文件发送到Firebase

时间:2018-06-21 11:10:29

标签: c# firebase firebase-storage

我想使用C#将文件发送到Firebase存储,并且我使用this package

我编写了以下代码,以将要发送的文件发送到Firebase;

public static async Task<bool> SendFile(string path, string name)
{
    try
    {
        var stream = File.Open(path, FileMode.Open);

        var task = new FirebaseStorage(Bucket)
            .Child(name)
            .PutAsync(stream);

        var downloadUrl = await task;
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
        return false;
    }

    return true;
}

问题是该代码无法正常工作并显示以下行:

var downloadUrl = await task;

引发异常:

  

指定的参数不在有效值范围内。参数名称:值

但是我没有进行任何用户验证。我看到这个软件包正在积极使用,但是我没有找到任何说明性文件。

它还详细给出以下消息作为错误消息

  

Message =“处理请求时发生异常。\ nUrl:https://firebasestorage.googleapis.com/v0/b/mueasyco-92b3b.appspot.com/o?name=1529582622840.wav \ nResponse:N / A”

编辑

我上传了代码;

public static async Task SendFile(string path, string name)
        {
            try
            {
                var auth = new FirebaseAuthProvider(new FirebaseConfig(ApiKey));
                var a = await auth.SignInWithEmailAndPasswordAsync(email, password);

                var stream = new MemoryStream(File.ReadAllBytes(path));

                var task = new FirebaseStorage("mueasyco-92b3b.appspot.com", new FirebaseStorageOptions
                    {
                        AuthTokenAsyncFactory = () => Task.FromResult(a.FirebaseToken),
                        ThrowOnCancel = true
                    })
                    .Child(name)
                    .PutAsync(stream);

                var downloadUrl = await task;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }

但是现在我似乎在异步编程方面遇到了问题。该代码将一直运行到下一行;

var a = await auth.SignInWithEmailAndPasswordAsync(email, password);

但是,其余代码无法正常工作,我认为它正在等待过程完成。但是,我不希望这种方法在不完成其工作的情况下退出。

编辑2

我用.Wait()调用了该方法,但是上面的身份验证部分并未结束。

0 个答案:

没有答案