我正在使用 .NET Windows Forms Framework 编写 C# 应用程序,当我尝试将信息发送到实时数据库时,出现权限被拒绝的错误,但我已登录该应用程序。我的 Firebase 实时数据库的安全性如下:
{
"rules":{
".read": "auth.uid != null",
".write": "auth.uid != null"
}
}
我使用来自 Step Up Labs 的 FirebaseAuthentication.net (v3.7.1) 和 FirebaseDatabase.net (v4.2.0)
using Firebase.Database;
using Firebase.Database.Query;
using Firebase.Auth;
发生权限被拒绝错误的代码如下
private async void button_reg_Click(object sender, EventArgs e)
{
authProvider = new FirebaseAuthProvider(new FirebaseConfig("my_api_key"));
var authResult = await authProvider.SignInWithEmailAndPasswordAsync("a mail that exists on firebase auth", "the correct password");
if (authResult != null)
{
var user = new Users()
{
Address = "Country",
LastName = "Doe",
Name = "John"
};
var client = getFirebaseClient();
await client.Child(nameof(Users))
.PostAsync(user);
}
}
private FirebaseClient getFirebaseClient()
{
return new FirebaseClient("my_database_url");
}
类用户是
public class Users
{
public string Name { get; set; }
public string LastName { get; set; }
public string Key { get; set; }
public string Address { get; set; }
}
代码通过了
authResult!=null
,但是在这一行await client.Child(nameof(Users)).PostAsync(user);
中出现了以下错误
Firebase.Database.FirebaseException: 'Exception occured while processing the request.
Url: https://project-projectNumber-default-rtdb.firebaseio.com/Users/-NwVBBRKfhiWk5R1ISC5/.json?print=silent
Request Data: {"Name":"John","LastName":"Doe","Key":null,"Address":"Country"}
Response: {
"error" : "Permission denied"
}
'
不明白问题出在哪里,希望有人能解答
通过阅读有关验证 StepUp Labs 数据库客户端的文档,您必须显式地将身份验证信息传递给
FirebaseClient
。
当您登录用户时,您似乎没有将身份验证信息传递到任何地方的
FirebaseClient
。