Class PushIDGenerator

java.lang.Object
icu.congee.id.generator.pushid.PushIDGenerator
All Implemented Interfaces:
IdGenerator

public class PushIDGenerator extends Object implements IdGenerator
Firebase Push ID生成器的Java实现

Push ID是一个20字符长的字符串,由以下部分组成: - 前8个字符:基于时间戳(毫秒级)的编码 - 后12个字符:随机生成的字符

特点: 1. 按时间排序:由于使用时间戳作为前缀,Push ID天然具有时间顺序 2. 唯一性:使用随机字符和时间戳组合确保唯一性 3. URL安全:使用URL安全的字符集(-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz)

Author:
congee
  • Constructor Details

    • PushIDGenerator

      public PushIDGenerator()
  • Method Details

    • generatePushID

      public static String generatePushID()
      生成一个新的Push ID
      Returns:
      20字符长的唯一Push ID
      Throws:
      RuntimeException - 如果时间戳转换失败或生成的ID长度不正确
    • main

      public static void main(String[] args)
      测试生成Push ID的主方法
      Parameters:
      args - 命令行参数(未使用)
    • generate

      public String generate()
      Description copied from interface: IdGenerator
      生成一个唯一标识符。 每个实现类都应该根据其特定的生成策略来实现此方法。
      Specified by:
      generate in interface IdGenerator
      Returns:
      生成的唯一标识符,具体类型由实现类决定
    • idType

      public IdType idType()
      Description copied from interface: IdGenerator
      获取当前生成器的标识符类型

      此方法用于标识生成器使用的具体ID生成策略。每个实现类都应该 返回一个对应其生成策略的IdType枚举值。

      Specified by:
      idType in interface IdGenerator
      Returns:
      当前生成器的标识符类型