Для получения данных пользователей облачного хранилища / электронная почта / (ключ: значения) с помощью C#
Я пытался передать, используя текстовое поле электронной почты, то есть TboxEmail.
DocumentReference docref = Data.Collection("users").Document(TboxEmail.Text);
DocumentSnapshot snap = await docref.GetSnapshotAsync();
I создал класс Userinfo, который получает все данные и выбирает только нужный ключ: значение.
using Google.Cloud.Firestore;
namespace FormApp
{
[FirestoreData]
class Userinfo
{
[FirestoreProperty]
public string email { get; set; }
[FirestoreProperty]
public bool status { get; set; }
[FirestoreProperty]
public string name { get; set; }
[FirestoreProperty]
public string address { get; set; }
[FirestoreProperty]
public int phone { get; set; }
}
}
Код.
bool s;
try
{
DocumentReference docref = Data.Collection("users").Document(TboxEmail.Text);
DocumentSnapshot snap = await docref.GetSnapshotAsync();
if (snap.Exists)
{
Userinfo userinfo = snap.ConvertTo<Userinfo>();
s = userinfo.status;
if (s)
{
this.Hide();
Dashboard home = new Dashboard(TboxEmail.Text);
home.ShowDialog();
return;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
MessageBox.Show(ex.StackTrace);
}
Если я использую обычный текст, например test в (Firestore) / users (Collection) / text (Document) и введите test in TboxEmail , затем код запускается fine .
Проблема в том, что я использую электронную почту вроде test@gmail.com в (Firestore) / users (Collection) / email (Document) и помещаю test@gmail.com в TboxEmail , то приведенный выше код не может преобразовать данные в userinfo .
Исключение из ex.Message is
Arithmetic operation resulted in an overflow
Exception from ex.StackTrace is
например, StackTrace