J'écris des chats websocket. Comment générer un identifiant unique pour l'utilisateur ?
maintenant j'utilise ce code :
id = new DateTime.now().millisecondsSinceEpoch;
Y a-t-il une solution plus propre ?
J'écris des chats websocket. Comment générer un identifiant unique pour l'utilisateur ?
maintenant j'utilise ce code :
id = new DateTime.now().millisecondsSinceEpoch;
Y a-t-il une solution plus propre ?
1. Il y a un paquet pub UUID :
http://pub.dartlang.org/packages/uuid
exemple d'utilisation :
import 'package:uuid/uuid.dart';
// Create uuid object
var uuid = Uuid();
// Generate a v1 (time-based) id
uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
// Generate a v4 (random) id
uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
// Generate a v5 (namespace-name-sha1-based) id
uuid.v5(uuid.NAMESPACE_URL, 'www.google.com'); // -> 'c74a196f-f19d-5ea9-bffd-a2742432fc9c'
2. Ce src a un générateur de GUID dart
Je ne posterai pas directement la fonction src ici car il n'y a pas de licence apparente avec elle, mais l'exemple d'utilisation est le suivant :
final String uuid = GUIDGen.generate();
En 2020, vous pourrez faire UniqueKey();
qui est une classe intégrée :
https://api.flutter.dev/flutter/widgets/UniqueKey-class.html
Note
Une clé qui n'est égale qu'à elle-même.
Elle ne peut pas être créée avec un constructeur const car cela implique que toutes les clés instanciées seraient la même instance et que ne sont donc pas uniques.
En plus de l'uuid, vous pouvez également essayer ceci pour générer de petites clés uniques :
https://pub.dev/packages/nanoid
Ils ont même un calculateur de collision :
Si vous aimez les identifiants de style MongoDB, vous pouvez considérer ce petit paquet qui vous aidera à créer l'identifiant de l'objet :
https://pub.dev/packages/crossplat_objectid
import 'package:bson_objectid/bson_objectid.dart';
main() {
ObjectId id1 = new ObjectId();
print(id1.toHexString());
ObjectId id2 = new ObjectId.fromHexString('54495ad94c934721ede76d90');
print(id2.timestamp);
print(id2.machineId);
print(id2.processId);
print(id2.counter);
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.