我有一个高分表,目前使用 facebook 登录来记录用户的高分。
但是我知道并不是每个人都想使用 facebook 来存储高分,事实上很多人会立即被 facebook 登录推迟。
所以我的想法是在 android 设备上使用他们的 Google Play id,在 iOs 设备上使用他们的 Game Center id。
我的问题是,我希望用户能够在 2 个平台上统一他们的游戏。这是我计划在游戏中保留 Facebook 登录的唯一原因,因为其中的 ID 号不依赖于平台。
例如,用户在他们的 iPhone 上播放,我检索他们的 GC id 并使用它来填充 mysql 表中的“profile_id”主键。然后他们使用 facebook 登录。最好用 facebook ID 作为“profile_id”创建一个新行,然后将之前的 profile_id 放入“apple_id”列?这样,如果他们随后使用 facebook 登录 Android 手机,我可以从他们的 iOS 会话中检索游戏数据。
在我看来,这可能有一个相当简单的解决方案,但我陷入了其中一个循环,您考虑以一种方式进行操作,然后意识到您之前已经尝试过。
有没有人对他们将如何做到这一点有任何好主意?
编辑:我应该补充一点,我正在思考的一个领域是这个。假设我为用户存储了一个 facebook id 和一个 apple id。如果下次他们更新分数时他们没有登录到 facebook,因此只发送了 Apple id 作为查询的一部分,我如何确保我不会将 facebook id 字段替换为 null 或“”?
我可以 :
if ($facebookID != "" && $facebookID != NULL)
{
$sql = "UPDATE scores SET facebook_id = '$facebookID' WHERE profile_id = $profile_id;";
}
if ($appleID != "" && $appleID != NULL)
{
$sql = "UPDATE scores SET apple_id = '$appleID' WHERE profile_id = $profile_id;";
}
if ($googleID != "" && $googleID != NULL)
{
$sql = "UPDATE scores SET google_id = '$googleID' WHERE profile_id = $profile_id;";
}
但这似乎不是很有效。如果变量不是空/空白,有没有办法只更新字段?