c# - Firebase 实时数据库,没有回报?
问题描述
这里是firebase数据库的新手,尝试登录。(想使用用户名而不是电子邮件)
所以使用实时数据库,但我似乎无法从数据库中得到任何东西。我看不出我在做什么有什么问题。起初以为是因为规则,将它们设置为 auth == null 后的结果相同。
有任何想法吗?
public FirebaseClient firebase = new FirebaseClient("https://MyApp.firebaseio.com/");
private readonly string ChildName = "Users";
public async Task<List<Userlogin>> GetAllUser()
{
return (await firebase
.Child(ChildName)
.OnceAsync<Userlogin>()).Select(item =>
new Userlogin
{
user_login = item.Object.user_login,
passwords = item.Object.passwords
}).ToList();
}
public async Task<Userlogin> GetUser(string user_login)
{
try
{
var allUsers = await GetAllUser();
await firebase
.Child(ChildName)
.OnceAsync<Userlogin>();
return allUsers.Where(a => a.user_login == user_login).FirstOrDefault();
}
catch (Exception e)
{
Crashes.TrackError(e);
return null;
}
}
private async void Login_Phase1()
{
try
{
if (string.IsNullOrEmpty(Usernamelabel.Text) || string.IsNullOrEmpty(Password.Text))
await App.Current.MainPage.DisplayAlert("Empty Values", "Please enter Email and Password", "OK");
else
{
var user = await GetUser(Usernamelabel.Text);
if (user != null)
if (Usernamelabel.Text == user.user_login && Password.Text == user.passwords)
{
Login_Phase2();
}
else
await App.Current.MainPage.DisplayAlert("Login Fail", "Please enter correct Email and Password", "OK");
else
await App.Current.MainPage.DisplayAlert("Login Fail", "User not found", "OK");
}
}
catch (Exception e)
{
Crashes.TrackError(e);
}
}
解决方案
笔记:
我相信这可能并非总是如此
导入数据库“用户”时在我的情况下,如果您使用 Json 文件导入。
出于某种奇怪的原因,我不得不在数据库上创建一个手动用户,以便在呼叫中注册其他用户。
解决方案:
只需使用正确的属性在数据库上创建一个新子项。
推荐阅读
- java - 在我的适配器中,我无法更改 onClickListener 中的定义值
- json-api - 如何在 JSON:API 中编写两个字的类型?
- java - ASCII 字符删除不起作用
- javascript - 单击时角度更新父 div 类
- reactjs - 如何将选项标记为选中
- odoo - 在系统中找不到外部 ID:“report.external_layout_header”
- javascript - 如何使用 react-final-form 对条件输入进行条件验证?
- javascript - 反应JS | 在现有状态转换期间无法更新
- kubernetes - 为什么ServiceInstances的ClusterServiceClass被删除后不能被删除?
- python - 用 conda 安装 tensorflow