我想使用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()
调用了该方法,但是上面的身份验证部分并未结束。