首页 > 解决方案 > 如何在 C# 中使用 firesharp nuget 包从 firebase 读取数据?

问题描述

我使用以下代码连接到 firebase 并尝试读取数据。连接成功,但我无法读取数据。它给出 System.NullReferenceException:'对象引用未设置为对象的实例。

namespace GPSTrack
{


public partial class Form1 : Form
{
    IFirebaseConfig config = new FirebaseConfig
    {
        AuthSecret = "4xxxxxxxxxxxxxxxxEzs",
        BasePath= "nodxxxxxx.firebaseio.com"
    };
    IFirebaseClient client;
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        client = new FireSharp.FirebaseClient(config);
        if(client!=null)
        {
            MessageBox.Show("Connection success");
        }
    }

    private async void  button1_Click(object sender, EventArgs e)
    {
        FirebaseResponse response = await client.GetTaskAsync("test");
        FBclass obj = response.ResultAs<FBclass>();

        MessageBox.Show(response.ToString());
    }
}
}

标签: c#.netfirebasefire-sharp

解决方案


问题可能出在响应创建中,因为您只放置了一个名为“test”的父节点。如果这是您的 firebase 实例中唯一的数据集/节点,那么它可能没有返回异常。如果“测试”父节点下有一个子节点,那么我想建议在 get 调用中对该节点进行硬编码:

FirebaseResponse response = await client.GetTaskAsync("test/childnode");
FBclass obj = response.ResultAs<FBclass>();

或者,您可以创建一个对要求特定 ID 的文本框的调用:

FirebaseResponse response = await client.GetTaskAsync($"test/{ textBox.Text }");
FBclass obj = response.ResultAs<FBclass>();

推荐阅读