当前位置: 首页 > 面试题库 >

有GCM registrationId模式吗?

郭琦
2023-03-14
问题内容
/**
 * @author Sebastien Lorber <i>(lorber.sebastien@gmail.com)</i>
 */
public enum EnumDeviceType {

    ANDROID {
        @Override
        public boolean validateDeviceIdentifier(String deviceIdentifier) {
            Preconditions.checkArgument( !Strings.isNullOrEmpty(deviceIdentifier) );
            return ANDROID_REGISTRATION_ID_PATTERN.matcher(deviceIdentifier).matches();
        }
    },
    IOS {
        @Override
        public boolean validateDeviceIdentifier(String deviceIdentifier) {
            Preconditions.checkArgument( !Strings.isNullOrEmpty(deviceIdentifier) );
            return IOS_DEVICE_TOKEN_PATTERN.matcher(deviceIdentifier).matches();
        }
    },
    ;

    // TODO how do we validate registration Ids
    public static final Pattern ANDROID_REGISTRATION_ID_PATTERN = Pattern.compile(".*");
    // IOS device token is a 64 HEX string
    public static final Pattern IOS_DEVICE_TOKEN_PATTERN = Pattern.compile("[a-fA-F0-9]{64,64}");


    public abstract boolean validateDeviceIdentifier(String deviceIdentifier);


    public boolean isIos() {
        return IOS.equals(this);
    }

    public boolean isAndroid() {
        return ANDROID.equals(this);
    }


}

我可以使用GCM
registrationId的任何已知模式在应用程序上验证registrationId的形状正确吗?我只想知道它的字符范围,例如最小或最大大小…或任何其他信息…


问题答案:

该文档没有指定任何模式,因此允许任何有效的字符串。该格式将来可能会更改;请不要针对 任何 模式验证此输入,因为如果发生这种情况,可能会导致您的应用中断。

与“ registration_id”字段一样,大小的上限是cookie的最大大小,即4K(4096字节)。



 类似资料:
  • 有人有一个通用的例子吗?通过看到这样的例子,一定会明白我们真的需要使用代理模式吗

  • 问题内容: 在Go中,有一个 缓冲 通道的概念。在填充缓冲区之前,该通道不会被阻塞。 通用 缓冲锁定 是否有任何通用模式?它将为有限数量的客户端锁定一些资源。 问题答案: 为有限数量的客户端锁定某些资源的原语称为信号量。 使用缓冲通道很容易实现:

  • 在我的TYPO3项目中是一个带有PHP7错误的扩展。 PHP警告:声明…应该与…兼容.. 1: PHP警告:tx_caretaker_pi_singleview声明::getNodeChart($节点)应该与 /typo3conf/ext/caretaker/pi_singleview/class.tx_caretaker_pi_singleview.php行40中tx_caretaker_pib

  • 我正在查看用Scala编写GraphQL服务器的Sangria库。但奇怪的是,同一个类型系统必须实现两次:(1)作为GraphQL类型声明的一部分,(2)也是在服务器端,作为Scala case类,附带ObjectType、InterfaceType等。 在Scala中硬编码类型系统尤其令人厌烦,因为我的目的是能够CRUD任意形状的聚合,其中每个形状都被定义为类型的GraphQL集合。例如,假设S

  • 我只需要在所有嵌套目录(包括 PWD)下匹配具有一个特定扩展名的文件,并使用“通配”的 BASH。 我不需要将所有嵌套目录下的所有文件与 shell 通配匹配,但不需要在 PWD 中匹配。 我需要使用 grep 以外的命令匹配文件,搜索所有文件扩展名的目录 我不需要只递归地 grep,而只需要在具有某些扩展名(复数)的文件中 适用于所有文件(不是我的问题)。 在 PWD 中不匹配。 返回重复文件。

  • 我们使用Apache Kafka(不是confluent Kafka)0.10。我们想用Kafka设置AVRO模式。我有如下的avro模式。 序列化消息, 这正像预期的那样起作用。 但是,希望在主题级别设置一个Avro模式,这样,如果消息不符合Avro模式,主题将拒绝消息。 不管怎么说,我可以用阿帕奇Kafka0.10做到这一点。