Auto increment a value in firebase with javascript

Firebase has no auto-incrementing keys, since those don't work well in massively multi-user systems where clients can be offline for prolonged periods.

Instead, Firebase has its own type of auto-generated keys called push IDs. These push IDs have the same important properties of sequences in many relational databases: they are ordered and sequential. But in addition, they can be calculated client-side, even when the client is not connected to the Firebase servers.

See the Firebase documentation on saving data in lists, this legacy blog post on why arrays don't work well in Firebase and this post on how push ids work.


There is no AutoId in firebase but here is a quick way to set as auto id

Forexample ;

1- create yourModel ( which one u gonna send as model to firebase )

2- DatabaseReference firebaseDatabase;

3- firebaseDatabase =FirebaseDatabase.instance.reference();

4- firebaseDatabase.child("table_name").push().set( yourModel.toJson() );

Also for getting data u can write code like that

var result= firebaseDatabase.child("table_name").once().then(
   (DataSnapshot datasnapshot){
     Map<dynamic,dynamic> values= datasnapshot.value;
     values.forEach((key,value){
       print("key:"+key+" value:"+value["name"]);
     });
   }
 );
 print(result);

I tried it and works great

Have a nice day !!!


Firebase recommends using distributed counters: https://firebase.google.com/docs/firestore/solutions/counters

For the document that requires the counter, you'd initialize a subcollection of, say, 10 documents and run transaction increments on a random shard whenever you need a counter incremented.

Then you'd query the collection of shards and sum their counters.