UUID Version 9: Push ID

Es handelt sich hier um (einen Entwurf|eine Idee|eine Spinnerei) von mir, nicht um einen offiziellen Standard!

Die 120 Bits einer Firebase Push ID werden auf die verfügbaren Bits einer UUID verteilt.

Aufbau einer Firebase Push ID:    ttttttttrrrrrrrrrrrr                 (base64 codiert)
Aufbau einer entsprechenden UUID: tttttttt-tttt-Xrrr-Yrrr-rrrrrrrrrrrr (base16 codiert)

Die IDs bestehen dabei aus den folgenden Elementen:

  • t: Timestamp (48 bit)
  • r: Zufallswert (72 bit)
  • X: Zeichen '9' (gespiegelt erinnert '9' an 'P' von Push ID)
  • Y: Zeichen '8' (freie Bits werden mit '0' belegt)

Man erhält damit eine alphabetisch sortierbare UUID, die mit dem Schema aus RFC 4122 kompatibel ist und den Wertebereich einer Firebase Push ID abbildet.