Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 在AppEngine中使用GUID作为键名_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Google app engine 在AppEngine中使用GUID作为键名

Google app engine 在AppEngine中使用GUID作为键名,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,我正在实现一个iPhone应用程序,它将数据与AppEngine后端同步。我正在使用此方法实现同步: 为了能够在手机上离线创建对象,我决定在iPhone应用程序中使用GUID作为主键。当我从服务器接收到新对象时,它们必须使用GUID相互关联,例如对象A引用对象B引用GUID引用。为了更容易地为引用了另一个具有ReferenceProperty的对象(B)的每个对象(A)创建json数据,我考虑将GUID作为键名,这样我就可以从ReferenceProperty/key获取GUID,而无需每次序

我正在实现一个iPhone应用程序,它将数据与AppEngine后端同步。我正在使用此方法实现同步:

为了能够在手机上离线创建对象,我决定在iPhone应用程序中使用GUID作为主键。当我从服务器接收到新对象时,它们必须使用GUID相互关联,例如对象A引用对象B引用GUID引用。为了更容易地为引用了另一个具有ReferenceProperty的对象(B)的每个对象(A)创建json数据,我考虑将GUID作为键名,这样我就可以从ReferenceProperty/key获取GUID,而无需每次序列化对象(A)时都获取引用的对象(B)


在所有对象上使用GUID作为键名是解决这一问题的好方法吗?

是的,如果你想急切地分配一个随机的、唯一的ID,GUID键名是很合适的。

是的,如果你想急切地分配一个随机的、唯一的ID,GUID键名是很合适的。

我不想,我必须…因为不同的设备可以在彼此不认识的情况下离线添加对象。还是说我可以选择?我猜GUID是一种标准的方式,但我的问题更多的是关于AppEngine设计,是否适合将它们存储为密钥名,或者是否有人知道如何解决它?嘿,如果我不清楚,很抱歉。是的,我认为GUID键名是满足您需求的最佳解决方案,它完全适合应用程序引擎的设计。@Drewsear,GUID比自动生成的数字ID占用更多空间。我不想,我必须……因为不同的设备可以在互不了解的情况下脱机添加对象。还是说我可以选择?我猜GUID是一种标准的方式,但我的问题更多的是关于AppEngine设计,是否适合将它们存储为密钥名,或者是否有人知道如何解决它?嘿,如果我不清楚,很抱歉。是的,我认为GUID密钥名称是满足您需求的最佳解决方案,它完全适合应用程序引擎的设计。@Drewsear,GUID比自动生成的数字ID占用更多的空间。小心恶意用户不能故意向其他人生成重复的UUID,和重写或读取其他用户的数据。谢谢提示。但无论应用程序使用哪种类型的ID,这不是一个普遍的问题吗?使用UUID,风险几乎降低到零,因为很难猜测UUID?区别在于,在这种情况下,攻击者可以选择ID,而通常他们不会。UUID可能很难猜测,但这不是它们的一个保证属性,而且您永远不应该依赖于您的标识符的安全性猜测有多难-始终验证它们的凭据!请注意,恶意用户不能故意向其他人生成重复的UUID,也不能覆盖或读取其他用户的数据。谢谢提示。但无论应用程序使用哪种类型的ID,这不是一个普遍的问题吗?使用UUID,风险几乎降低到零,因为很难猜测UUID?区别在于,在这种情况下,攻击者可以选择ID,而通常他们不会。UUID可能很难猜测,但这不是它们的一个保证属性,而且您永远不应该依赖于您的标识符的安全性猜测有多难-始终验证它们的凭据!