在Xamarin.Forms中使用Firesharp从Firebase数据库获取数据

时间:2018-03-31 22:22:04

标签: firebase firebase-realtime-database xamarin.forms fire-sharp

我想使用Firesharp插件从Xamarin.Forms中的Firebase数据库中获取Recipe-Data。

我的模型类是配方类:

public class Recipe
{
    public string title { get; set; }

    public string workTime { get; set; }

    public string degreeOfDifficulty { get; set; }

    public string caloriesPerPerson { get; set; }

    public string preparation { get; set; }

    public string cookingBakingTime { get; set; }

    public string restTime { get; set; }

    public int portions { get; set; }

    public string pictureSource { get; set; }

    public List<Ingredient> ingredients { get; set; }


    public Recipe()
    {
        ingredients = new List<Ingredient>();
    }
}

因此,将配方对象推送到Firebase DB可以正常工作:

 public async Task PushRecipe(Recipe recipe)
    {
        IFirebaseClient client = new FirebaseClient(config);

        client.Push("Recipes", recipe);

    }

Firebase Example

但是当我想从数据库中获取数据时,我得到一个错误..

public async Task<List<Recipe>> GetAllRecipes()
    {
        IFirebaseClient client = new FirebaseClient(config);

        FirebaseResponse response = await client.GetAsync("Recipes");

        try
        {

            List<Recipe> recipelist = response.ResultAs<List<Recipe>>();

            return recipelist;

        } catch (Exception e){

        }

        return null;

    }

之后:

List<Recipe> recipelist = response.ResultAs<List<Recipe>>();

这个例外来了..

“{Newtonsoft.Json.JsonSerializationException:无法将当前JSON对象(例如{”name“:”value“})反序列化为类型'System.Collections.Generic.List`1 [dignaBon_App.Models.Recipe]',因为该类型需要一个JSON数组(例如[1,2,3])来反序列化correc ...}“

我不明白为什么我无法从数据库中获取数据..

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

您需要使用Firebase秘密地址密钥将“ config”设置为无效。为此,请转到Firebase控制台。