firebase-key
is a library of utility functions for manipulating, encoding and decoding Firebase keys.
API
key
function key(
timestamp: number | Date = Date.now(),
as: "max" | "min" | "random" = "random"
): string
This function is based on the Firebase push key/ID generator implemented in this gist.
If called with no arguments, it generates a Firebase push key/ID using the current time. If a timestamp is specified, it is used in the generation of the key.
By default, the timestamp is combined with random data. If as
is specified as either max
or min
, random data is not used and the generated key will sort either after (for max
) or before (for min
) any other keys that that have the same timestamp, but have random data.
date/milliseconds
function date(key: string): Date
function milliseconds(key: string): number
These functions return the timestamp of a push key/ID, either as a Date
or as the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC.
increment/decrement
function increment(key: string): string
function decrement(key: string): string
These functions return a push key/ID that has been incremented or decremented to the next consecutive push key/ID and can be useful when paging through the Firebase database.
encode/decode
function encode(text: string): string
function decode(key: string): string
These functions encode and decode keys, replacing illegal characters with safe, encoded characters.
!
is used as an escape character - rather than %
- for compatibility with the REST API and with the Firebase management console.
encodeLexicographic/decodeLexicographic
function encodeLexicographic(value: number): string
function decodeLexicographic(key: string): number
These functions encode and decode integer values (both positive and negative) as strings that have a lexicographic ordering that is identical to the numeric ordering. They are based upon an implementation used in Firepad.