UUID - React Native SDK
Novidades na versão realm@10.5.0
.
UUID
(Identificador Único Universal) é um 16 valor único de bytes . UUID
é fornecido com o pacote Realm como parte do BSON (Realm.BSON.UUID
).
Você pode usar UUID
como um identificador exclusivo para objetos. O UUID
é indexável, e você pode usá-lo como uma chave primária.
class Profile extends Realm.Object { static schema = { name: 'Profile', primaryKey: '_id', properties: { _id: 'uuid', name: 'string', }, }; }
class Profile extends Realm.Object<Profile> { _id!: Realm.BSON.UUID; name!: string; static schema: ObjectSchema = { name: 'Profile', primaryKey: '_id', properties: { _id: 'uuid', name: 'string', }, }; }
Uso
Para definir uma propriedade como um UUID
, configure seu tipo para "uuid"
em seu modelo de objeto. Crie um objeto de Realm dentro de uma transação escrita. Para definir quaisquer propriedades de identificador únicas do seu objeto para um valor aleatório, ligue para new UUID()
. Como alternativa, passe uma string para new
UUID()
para definir a propriedade de identificador exclusivo como um valor específico.
Exemplo
No exemplo CreateProfileInput
a seguir, criamos um Profile
Realm.Object com um tipo uuid
para o campo _id
.
O componente CreateProfileInput
faz o seguinte:
Obtém acesso à instância de realm aberta chamando o hook
useRealm()
.- Cria um nome variável de estado
- chamado "nome" que representa o nome do perfil.
- Cria um método
createProfile
que executa uma transação de gravação. Dentro de - essa transação de gravação, criamos um objeto
Profile
com o valorname
da variável de estado "name" e um valor_id
de um novo objetoUUID
.
- Cria um método
- Renderiza um componente
TextInput
que permite ao usuário inserir um nome para - o perfil. Quando o usuário pressiona o botão "Criar perfil", o método
createProfile
é chamado e cria um objetoProfile
.
- Renderiza um componente
1 const CreateProfileInput = () => { 2 const realm = useRealm(); 3 const [name, setName] = useState(''); 4 5 // createProfile creates a new 'Profile' Realm Object with a new UUID based on user input 6 const createProfile = () => { 7 realm.write(() => { 8 realm.create('Profile', { 9 name, 10 _id: new Realm.BSON.UUID(), 11 }); 12 }); 13 }; 14 return ( 15 <View> 16 <TextInput 17 placeholder='Name' 18 onChangeText={setName} 19 /> 20 <Button 21 title='Create Profile' 22 onPress={createProfile} 23 /> 24 </View> 25 );
1 const CreateProfileInput = () => { 2 const realm = useRealm(); 3 const [name, setName] = useState(''); 4 5 // createProfile creates a new 'Profile' Realm Object with a new UUID based on user input 6 const createProfile = () => { 7 realm.write(() => { 8 realm.create('Profile', { 9 name, 10 _id: new Realm.BSON.UUID(), 11 }); 12 }); 13 }; 14 return ( 15 <View> 16 <TextInput 17 placeholder='Name' 18 onChangeText={setName} 19 /> 20 <Button 21 title='Create Profile' 22 onPress={createProfile} 23 /> 24 </View> 25 );