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 BSONRealm.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
createProfileque executa uma transação de gravação. Dentro de - essa transação de gravação, criamos um objeto
Profilecom o valornameda variável de estado "name" e um valor_idde um novo objetoUUID.
- Cria um método
- Renderiza um componente
TextInputque 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 );