Je viens vers vous car j'ai une "erreur" vraiment étrange avec Firebase et RestClient (asset unity).
Le problème survient quand j'insère une nouvelle donnée, une fois ça me donnera le résultat escompté et une autre fois un tableau ( que je ne veux pas ) avec pour Key "null".
Voici mon code ( si vous voyez une erreur hésitez pas ) :
Mon fichier 'bddHandler'
Code : Tout sélectionner
// le projectId est egal a mon id de projet ( en private const string )
private static readonly string databaseURL = $"https://{projectId}.firebaseio.com/";
public delegate void PostMobCallback();
/// <summary>
/// Ajout d'un mob en bdd
/// </summary>
/// <param name="mob"> mon objet mob </param>
/// <param name="mobId"> l'id de mon mob qui sera l'id dans firebase </param>
/// <param name="callback"> le callback si tout se passe bien </param>
public static void PostMob(Monster mob, string mobId, PostUserCallback callback)
{
RestClient.Put<Monster>($"{databaseURL}mobs/{mobId}.json", mob).Then(response => { callback(); });
}
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Monster
{
public string name;
public string description;
public int life;
// constructeur
public Monster(string name, string description, int life){
this.name = name;
this.description = description;
this.life = life;
}
}
Code : Tout sélectionner
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
private static void OnAppStart()
{
var newMob = new Monster("Chat", "La description d'un chat", 300);
DatabaseHandler.PostMob(newMob, "5", () =>
{
Debug.Log("mob créer");
});
}
Code : Tout sélectionner
{
"mobs" : {
"5" : {
"name" : "Chat",
"description" : "La description d'un chat",
"life" : 300
},
"6" : {
"name" : "Un autre chat",
"description" : "La description d'un autre chat",
"life" : 400
}
}
Code : Tout sélectionner
{
"mobs" : [ null, null, null, {
"description" : "La description d'un chat",
"life" : 300,
"name" : "Chat"
}, {
"description" : "Un Zombie tout mignon",
"life" : 300,
"name" : "Zombie"
}, {
"description" : "La description d'un autre chat",
"life" : 400,
"name" : "Un autre chat"
} ]
}
Si vous n'avez rien qu'une piste je prends.