https://github.com/umahmood/pushid
PushID a Go library which implements Firebase's push IDs
https://github.com/umahmood/pushid
firebase go golang push-id
Last synced: about 2 months ago
JSON representation
PushID a Go library which implements Firebase's push IDs
- Host: GitHub
- URL: https://github.com/umahmood/pushid
- Owner: umahmood
- License: mit
- Created: 2021-12-20T20:30:03.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-12-20T20:41:07.000Z (over 4 years ago)
- Last Synced: 2025-12-27T04:25:02.888Z (6 months ago)
- Topics: firebase, go, golang, push-id
- Language: Go
- Homepage:
- Size: 3.91 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Push ID
PushID is a Go library which generates chronological, 20-character unique IDs. It
implements Firebase's push IDs, what are Push IDs?
*Push IDs are string identifiers that are generated client-side. They are a
combination of a timestamp and some random bits. The timestamp ensures they
are ordered chronologically, and the random bits ensure that each ID is
unique, even if thousands of people are creating push IDs at the same time.*
```
{
"messages": {
"-JhLeOlGIEjaIOFHR0xd": "Hello there!",
"-JhQ76OEK_848CkIFhAq": "Push IDs are pretty magical.",
"-JhQ7APk0UtyRTFO9-TS": "Look a white rabbit!"
}
}
```
# Installation
```
$ go get github.com/umahmood/pushid
```
# Usage
```
package main
import (
"fmt"
"github.com/umahmood/pushid"
)
func main() {
id := pushid.New()
for i := 0; i < 10; i++ {
pid, err := id.Generate()
if err != nil {
//...
}
fmt.Println(pid)
}
}
```
Output:
```
-MrOKZ8QmUqMN34sp0Ne
-MrOKZA2OJ1HB_vkglmr
-MrOKZBfU9x7emWkX5DX
-MrOKZDIh7Voefkx01eK
-MrOKZEsM13vVmJjq4r-
-MrOKZGU5AYs_lWs7Z8t
-MrOKZI6VGY4I_rUqtyw
-MrOKZJirH5rg1F40C8R
-MrOKZLLqOUswv_-zPE6
-MrOKZMz_9QG-zOI3eqF
```
# Documentation
> https://pkg.go.dev/github.com/umahmood/pushid
# Resources
[https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html]()
# License
See the [LICENSE](LICENSE.md) file for license rights and limitations (MIT).