# Ember Localstorage adapter generated ID's

**URL:** <https://discuss.emberjs.com/t/ember-localstorage-adapter-generated-ids/6908>\
**Category:** Ember Data\
**Created:** [December 12, 2014, 3:36pm UTC](https://discuss.emberjs.com/t/ember-localstorage-adapter-generated-ids/6908 "2014-12-12T15:36:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Visualbam](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/visualbam/32/9846_2.png) [@Visualbam](https://discuss.emberjs.com/u/Visualbam)\
**Post date:** [December 12, 2014, 3:36pm UTC](https://discuss.emberjs.com/t/ember-localstorage-adapter-generated-ids/6908/1 "2014-12-12T15:36:24Z")

</div>

I’m using the localstorage adapter and have no web service. It is possible to have my ID’s ordered numerically when I create new records? i.e (0, 1, 2, 3, 4, 5) vs (ard79, j12jk, kjals9, aa2ji2)

---

<div class="post-metadata">

**Author:** ![backspace](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/backspace/32/9927_2.png) [@backspace](https://discuss.emberjs.com/u/backspace)\
**Post date:** [December 12, 2014, 4:20pm UTC](https://discuss.emberjs.com/t/ember-localstorage-adapter-generated-ids/6908/2 "2014-12-12T16:20:46Z")

</div>

You could extend the adapter and override the [ID generator](https://github.com/kurko/ember-localstorage-adapter/blob/master/localstorage_adapter.js#L257):

```
generateIdForRecord: function () {
  return Math.random().toString(32).slice(2).substr(0, 5);
},

```

You’d surely have to add some magic to track the highest assigned ID and such, though.

---

<div class="post-metadata">

**Author:** ![doug316](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/doug316/32/15507_2.png) [@doug316](https://discuss.emberjs.com/u/doug316)\
**Post date:** [December 12, 2014, 11:34pm UTC](https://discuss.emberjs.com/t/ember-localstorage-adapter-generated-ids/6908/3 "2014-12-12T23:34:43Z")

</div>

I’m using `Ember.uuid()`, which generates incrementing integers (not real UUID’s per se). I set the `id` and a `clientId` on new records, and the server response will contain a server-generated UUID along with the clientId so the record can be updated.
