私はチャットアプリケーションを作成しているので、一意のメッセージIDを生成します。 重複するメッセージIDを決して作成することはできません。独自のメッセージIDを作成するwhatsアプリケーションのように
答えて
のMongoDBのObjectIdはかなり複雑で、おそらくビューの一意のIDポイントから良いランダム性の一つです。 ソースコードを見て、どのように生成されているかを見ることができます。後世のためにここに彼らの公式ドキュメントから定義を残し
:
たObjectIdは、小さな可能性がユニークな、生成するために高速で、かつ命じています。 のObjectId値は最初の4バイトは、具体的には、のObjectIdの作成を反映 タイムスタンプされ、12バイトからなる:Mongoの者のObjectIdの
a 4-byte value representing the seconds since the Unix epoch, a 3-byte machine identifier, a 2-byte process id, and a 3-byte counter, starting with a random value.
例:
ObjectId("507f1f77bcf86cd799439011")
あなたの貧弱な記述に基づいて、化合物IDを作成することができます。たとえば、ユーザーID +タイムスタンプで自分の仲間を作成することができます。このパターンを使用する場合、ユーザーIDの長さはすべてのidesで同じでなければなりません。それがない場合は、あなたがより良い説明のためのユーザーのIDE
のすべてのために同じ長さを得るために、あなたの現在のID befor「0」を追加する必要があります。実際の問題として
String uniquemsgid= userid+ System.currentTimeMillis();
を、ユーザー一意のタイムスタンプがこのユーザーに固有のIDを持つ 注意:タイムスタンプまたは任意の形式の日付のみを使用する場合、このメソッドは一意のメッセージIDを保証できません。 2人のユーザーがすぐにメッセージを作成できるため、
1つを生成する方法はたくさんあります。 1つの一般的な方法は、タイムスタンプ値を生成し、これを一意のIDとして使用することです。
たとえば、あなたがこれを行うことができます。
public int createID(){
Date now = new Date();
int id = Integer.parseInt(new SimpleDateFormat("ddHHmmss", Locale.US).format(now));
return id; }
あなたもウルのアプリは必要に応じてそれをよりユニークな作ってみると、それは文字列を作成し、それを任意の特定の文字列フォーマットを追加することができます!
Random randomId= new Random(); int id = randLan.nextInt(99999) + 1;
次に、Idがすでに与えられているかどうかを確認し、そうであれば再試行します。そうでなければ、IDを持っています。
(ランダムID == someOtherId)であれば、再び同じプロセスを実行します。
あなたは常にユニークで取得するのはとても簡単です。このため、デバイスのIMEI番号を、使用することをお勧めします。
上記の権限をマニフェストファイルに追加し、次に2行を使用してIMEIを取得します。
TelephonyManager mngr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
long id = Long.parseLong(mngr.getDeviceId());
- 1. iOSアプリケーション用に独自のUTIを作成する
- 2. 独自の "OpenIDのようなシステム"プロバイダを作成する
- 3. 独自のロギングレベルの独自のログメソッドを作成する方法
- 4. 独自の依存関係をダウンロードするJavaアプリケーションの作成
- 5. 独自のパケットモニタを作成
- 6. どのようにatan(アークタンジェント)の独自のメソッドを作成するには?
- 7. 独自のフォームデザイナの作成
- 8. 独自のデータソースの作成
- 9. 独自のインテリセンスを作成する
- 10. 独自のデータ型を作成する
- 11. 独自のMD5コリジョンを作成する
- 12. 独自の.NETアセンブリキャッシュを作成する
- 13. 独自のエンコーディングを作成する
- 14. ユーザーがクラスの独自のインスタンスを作成できるようにする
- 15. 独自のシステムバーを作成します
- 16. kafka用の独自のカスタムパーティショナーを作成
- 17. 独自のカスタムプロファイルフィールドasp.net ID MVC5
- 18. Codeigniterで独自のbase_url()を作成
- 19. 独自のunixコマンドを作成
- 20. 独自の暗号化を作成
- 21. SQLで独自の列プロパティを作成
- 22. JSON-LDの独自のカスタムコンテキストの作成
- 23. 独自のフラッシュデバッガの作成方法は?
- 24. Gear VR用に独自のOculusビデオアプリチャンネルを作成するには?
- 25. デフォルトのFacebookデザインのようなスタイル独自のアプリケーション
- 26. 独自のマウスドライバを作る
- 27. Javaセレンクリックオーバーライドまたは独自の作成
- 28. beforeunload - 独自のメッセージと関数の成功とfalse?
- 29. FTLで独自のJavaオブジェクトを作成するには
- 30. exoplayer2.xに独自のカスタムデータソースファクトリを作成する方法は?
より良い使用のMongoDB。 _idはあなたのIDを作成できます。 –
[Android SMS設定固有ID](http://stackoverflow.com/questions/11377730/android-sms-setting-unique-id)の可能な複製 – mabe02