現在、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 セッションからゲーム データを取得できます。
おそらくこれにはかなり簡単な解決策があるように思えますが、私は、ある方法でそれを行うことを考えてから、以前にそれを試したことがあることに気付くというループの1つにはまっています.
誰かがこれを行う方法について何か良いアイデアを持っていますか?
編集:私が頭が固まって考えている領域の1つがこれであることを追加する必要があります. ユーザー用に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;";
}
しかし、それはあまり効率的ではないようです。変数が null/空白でない場合にのみフィールドを更新する方法はありますか?