DocumentId.generate constructor

DocumentId.generate([
  1. Random? random
])

Mints a new random document id (UUIDv4 layout). Pass a seeded random for deterministic tests; the default is cryptographically random.

Implementation

factory DocumentId.generate([Random? random]) {
  final rng = random ?? Random.secure();
  final b = Uint8List(16);
  for (var i = 0; i < 16; i++) {
    b[i] = rng.nextInt(0x100);
  }
  b[6] = (b[6] & 0x0F) | 0x40; // version 4
  b[8] = (b[8] & 0x3F) | 0x80; // variant 1
  return DocumentId(b);
}