Web アプリのユーザー データのデータ ストアとして firebase を使用することを考えています。私の現在の考えは、各ユーザーのデータを参照するキーとして参加したときのタイムスタンプを使用して、各ユーザーのデータを保存することです。この方式の利点は、一意の整数 ID をユーザーに割り当てる簡単な方法であり、ユーザーの時系列の並べ替えが簡単になることです。
ただし、欠点は、2 つのadd user
要求が同じデータで送信された場合、アプリが喜んで 2 つの別個のエントリを追加することです。これは理想的ではありません。物事をシャッフルすることはできますが (現在のスキームではなく、電子メールをキーとして使用し、データの結合によって優先順位を付ける必要があると考え始めています)、そうしたくないとします。データの重複を防ぐ方法はありますか?
素朴なアプローチは、おそらく次のようなことをするだけです:
if(!searchFirebaseForUser(data)) {
addUser(data);
}
しかし、これは間違いなく競合状態です。2 つの要求で、クエリを実行してデータベース内のユーザーを見つけられず、両方とも追加するのは簡単です。トランザクションでこれを行いたいのですが、Firebase トランザクション サポートがこのケースをカバーしていないようです。これを処理する方法はありますか?