Google cloud platform 发布/订阅消息ID是否可以作为数字保存?

Google cloud platform 发布/订阅消息ID是否可以作为数字保存?,google-cloud-platform,google-bigquery,google-cloud-pubsub,Google Cloud Platform,Google Bigquery,Google Cloud Pubsub,发布/订阅保证messageId始终是唯一的编号。所以,我使用这个id作为deviceId,并在bigquery表中保存这个值。谷歌文档说这个值字符串。但是,根据我的实验,messageId返回15位数字。我应该在bigquery中将此值保留为数字吗?有什么麻烦吗 问题在于(10)的最大长度,而不是它只包含数值这一事实。 这就是为什么您应该将值保留为字符串,而不是文档中定义的整数的原因。问题在于(10)的最大长度,而不是它只包含数值的事实。 这就是为什么您应该将值保留为字符串而不是文档中定义的整

发布/订阅保证messageId始终是唯一的编号。所以,我使用这个id作为deviceId,并在bigquery表中保存这个值。谷歌文档说这个值字符串。但是,根据我的实验,messageId返回15位数字。我应该在bigquery中将此值保留为数字吗?有什么麻烦吗


问题在于(10)的最大长度,而不是它只包含数值这一事实。
这就是为什么您应该将值保留为字符串,而不是文档中定义的整数的原因。问题在于(10)的最大长度,而不是它只包含数值的事实。
这就是为什么您应该将值保留为字符串而不是文档中定义的整数的原因

Pub/sub保证每个主题的messageId始终是唯一的,而不是它是一个数字

文档中所述的数据类型是字符串,因此它可以包含任何unicode字符

所以,正如其他人所说,虽然现在是一个15位数的数字,但在未来的某个时刻
将来,谷歌会生成一个非数字字符串,或者一个大于低级代码所能存储的数字,那么你的应用程序就会失败。

Pub/sub保证每个主题的messageId总是唯一的,而不是一个数字

文档中所述的数据类型是字符串,因此它可以包含任何unicode字符

所以,正如其他人所说,虽然现在是一个15位数的数字,但在未来的某个时刻 将来,谷歌会生成一个非数字字符串,或者生成一个大于低级代码所能存储的数字,那么你的应用程序就会失败。

谷歌支持人员说: “MessageId由最多可能的19位数字组成。只要一个ID以前没有使用过(因为它们是唯一的),最多可以有19位数字,但实际上可能达不到该数字量。”

谷歌支持部门表示:
“MessageId包含的最大可能数字是19。只要以前没有使用过ID(因为它们是唯一的),最多可以有19个数字,但实际上可能无法达到该数字量。”

4字节整数是我们唯一可以使用的类型吗?8字节或更大的整数怎么样?根据以下文档,BQ提供了一种称为“numeric”的类型,其存储大小为16字节,并保存{38}.{9}位长的数字。当然你可以使用它,但请注意,如果谷歌将生成一个字符串作为他们的API状态,那么你的代码可能无法工作。我们可以使用的唯一类型是4字节整数?8字节或更大的整数怎么样?根据以下文档,BQ提供了一种称为“numeric”的类型,其存储大小为16字节,并保存{38}.{9}位长的数字。当然你可以使用它,但请注意,如果谷歌将生成一个字符串作为他们的API状态,那么你的代码可能无法工作,为什么你需要作为数字?你想对它们进行一些加/减运算吗?我不使用任何数值运算。messageId作为编号保存在设备上,并且已经由设备团队开发。设备程序是低级别的,我试图阻止请求对程序进行更改,除非是绝对必要的。但是我无法从发布/订阅的任何文档页面确认messageId的数据类型。为什么需要数字形式?你想对它们进行一些加/减运算吗?我不使用任何数值运算。messageId作为编号保存在设备上,并且已经由设备团队开发。设备程序是低级别的,我试图阻止请求对程序进行更改,除非是绝对必要的。但我无法从发布/订阅的任何文档页面确认messageId的数据类型。