Ho bisogno di ID numerici per la leggibilità umana. Come posso inserirlo in Firebase?
Voglio l’ID numerico per le chiavi, ad esempio “000000001”, “000000002”, “00000003”, “00000004”.
Il motivo per cui ho bisogno è che questi ID diventeranno l’ID dell’object permanente sia online che offline. Voglio che gli utenti siano in grado di navigare su quella pagina object semplicemente inserendo l’URL “/ objects / 00000001” senza sforzi.
Sto chiedendo qui, perché voglio sapere se questo può essere fatto senza usare .priority
, sotto-proprietà, ecc. Immagino che il metodo set
possa farlo in qualche modo. Se non è ansible, dimmi di no, posso accettare quella risposta.
Suggerirei di leggere la documentazione di Firebase. In particolare, consulta la sezione Salvataggio dei dati della guida Web JavaScript di Firebase.
Dalla guida:
Ottenere l’ID univoco generato da push ()
La chiamata push () restituirà un riferimento al nuovo percorso dati, che è ansible utilizzare per ottenere il valore del proprio ID o impostare i dati su di esso. Il codice seguente genererà gli stessi dati dell’esempio precedente, ma ora avremo accesso all’ID push univoco che è stato generato
// Generate a reference to a new location and add some data using push() var newPostRef = postsRef.push({ author: "gracehop", title: "Announcing COBOL, a New Programming Language" }); // Get the unique ID generated by push() by accessing its key var postID = newPostRef.key;
Fonte: https://www.firebase.com/docs/web/guide/saving-data.html
key
. Questi tasti assomigliano a -JiGh_31GA20JabpZBfa
, quindi non numerici. Dalla guida:
In JavaScript, lo schema di chiamare push () e quindi chiamare immediatamente set () è così comune che ti permettiamo di combinarli semplicemente passando i dati da impostare direttamente su push () come segue. Entrambe le seguenti operazioni di scrittura comporteranno il salvataggio degli stessi dati su Firebase:
// These two methods are equivalent postsRef.push().set({ author: "gracehop", title: "Announcing COBOL, a New Programming Language" }); postsRef.push({ author: "gracehop", title: "Announcing COBOL, a New Programming Language" });
Fonte: https://www.firebase.com/docs/web/guide/saving-data.html
Come spiegato sopra, puoi utilizzare l’id push predefinito Firebase.
Se vuoi qualcosa di numerico puoi fare qualcosa in base al timestamp per evitare collisioni
Qualcosa basato su data, ora, secondo, ms e qualche int casuale alla fine
01612061353136799031
Che si traduce in:
016-12-06 13:53:13:679 9031
Tutto dipende dalla precisione di cui hai bisogno (i numeri di previdenza sociale fanno lo stesso con alcuni caratteri casuali alla fine della data). Come quante transazioni saranno previste durante il giorno, ora o secondo. Potresti voler ridurre la precisione per favorire la facilità di digitazione.
Puoi anche fare una transazione che incrementa il numero id, e in caso di successo avrai un numero consecutivo unico per quell’utente. Questi possono essere fatti sul lato client o server.
( https://firebase.google.com/docs/database/android/read-and-write )