Why do firebase collections seem to begin with a null row?

firebase, javascript, rest

Solution

Firebase automatically detects when an object 'looks like' an array, and converts it accordingly. Since 'systems' and 'system_types' have children of 1, 2, and 3, Firebase is automatically converting these to arrays at output time. However, since you didn't specify a value for index 0, Firebase is just inserting an empty element.

I'd suggest either using zero-based ID's, or perhaps starting your id's with something non-numeric so we know it's not an array (ie: item1, item2, item3).

You could also just ignore the null element -- In Firebase null and non-existent are the same thing.

Problem

I've created a simple firebase data set to test some REST calls with (see the image below). I'm wondering why, when I query the collections in the database, firebase always return a null row first and then the actual rows. Here is what I get when I export the data. Notice the null rows under systems and system_types: ``` { "systems" : [ null, { "system_type_id" : 2, "name" : "Commodore 128", "id" : 1 }, { "system_type_id" : 1, "name" : "Difference Engine", "id" : 2 }, { "system_type_id" : 2, "name" : "Osborne", "id" : 3 } ], "system_types" : [ null, { "name" : "Babbage", "id" : 1 }, { "name" : "Von Neumann", "id" : 2 } ] } ```

Original source