Lorsque vous souhaitez développer rapidement une application AngularJS en limitant le développement côté serveur, Firebase est une excellente solution pour gérer la partie serveur. Pour le dire vite, Firebase propose une base noSQL avec une API au-dessus, API qui permet notamment de persister vos données.
Malheureusement, lorsque vous testez un banal POST d'objet json dans votre base Firebase à l'aide de cURL :
C:\WINDOWS\system32>curl -X POST -d '{"name": "Sam", "message": "Salut"}' https:
//blabla.com/messages.json
vous risquez d'être cueilli à froid par le message suivant :
curl: (6) Couldn't resolve host 'Sam,'
curl: (6) Couldn't resolve host 'message'
curl: (3) [globbing] unmatched close brace/bracket at pos 6
{
"error" : "Invalid data; couldn't parse JSON object, array, or value. Perhaps
you're using invalid characters in your key names."
}
Vous essayerez peut-être d'ajouter un header :
curl -H "Content-Type: application/json" -d '{"user": "Sam", "text": "Salut"}' https://blabla.com/messages.json
Sans plus de réussite. Pourquoi ? Voici un indice :
C:\WINDOWS\system32>
En refaisant l'expérience sous linux, les choses se passent autrement mieux :
sam@xxxxx:~# curl -X POST -d '{"user": "Sam", "text": "Salut"}' https://blabla.com/messages.json
{"name":"-JPsXxqRYHesZIvM3LqK"}sam@xxxxx:~#
Notre base noSQL nous retourne l'ID de notre nouvel objet stocké dans sa collection.
En conclusion, la console windows et cURL ne font pas bon ménage. Préférez un bon shell linux pour jouer avec cURL et Firebase.
nota : bien évidemment, vous utiliserez l'url fourni par Firebase lors de la création de votre base de données, en lieu et place des "https://blabla.com" utilisés dans les exemples.