¿Cómo te almacenar múltiples conjuntos de datos con el mismo nombre pero diferentes entrada disponible Firestore

dawnofwar:

Hola tengo un formulario que el usuario rellene dentro de mi aplicación que incluye lo siguiente: título, nombre de usuario, contraseña, y webaddress nota. Mis códigos actuales almacena los datos para una entrada sin problemas, pero cuando voy a entrar en una nueva entrada de los datos se sobrescribe. Tengo que ser capaz de almacenar múltiples entrada disponible de la forma. ¿Qué necesitaría al cambio en mi código para permitir esto?

Las cuerdas están encriptados a través de otro tipo de código en mis eso es por lo que su programa rodeado por un try / catch.

 public void storePassword() {
        final String title_entry = title.getText().toString().trim();
        final String username_entry = title.getText().toString().trim();
        final String password_entry = title.getText().toString().trim();
        final String webaddress_entry = title.getText().toString().trim();
        final String note_entry = title.getText().toString().trim();



        Map<String, Object> user = new HashMap<>();
        try {
            user.put("title", EncryptDecrypt.encryptString(title_entry, Password));
        } catch (NoSuchAlgorithmException | InvalidKeySpecException | InvalidKeyException | InvalidAlgorithmParameterException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException e) {
            e.printStackTrace();
        }
        try {
            user.put("username", EncryptDecrypt.encryptString(username_entry, Password));
        } catch (NoSuchAlgorithmException | InvalidKeySpecException | InvalidKeyException | InvalidAlgorithmParameterException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException e) {
            e.printStackTrace();
        }
        try {
            user.put("password", EncryptDecrypt.encryptString(password_entry, Password));
        } catch (NoSuchAlgorithmException | InvalidKeySpecException | InvalidKeyException | InvalidAlgorithmParameterException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException e) {
            e.printStackTrace();
        }
        try {
            user.put("webAddress", EncryptDecrypt.encryptString(webaddress_entry, Password));
        } catch (NoSuchAlgorithmException | InvalidKeySpecException | InvalidKeyException | InvalidAlgorithmParameterException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException e) {
            e.printStackTrace();
        }
        try {
            user.put("note", EncryptDecrypt.encryptString(note_entry, Password));
        } catch (NoSuchAlgorithmException | InvalidKeySpecException | InvalidKeyException | InvalidAlgorithmParameterException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException e) {
            e.printStackTrace();
        }
        userID = firebaseAuth.getCurrentUser().getUid();
        fDatasebase.collection("Users").document(userID).update(user);

    }
Doug Stevenson:

Si desea almacenar múltiples formas por usuario, no se puede utilizar el mismo documento de identificación para cada formulario. En su lugar debe utilizar un documento de identificación al azar, y almacenar el ID de usuario como un campo en el documento.

Map<String, Object> user = new HashMap<>();
// populate the map as you were

// put the UID in the map
String uid = firebaseAuth.getCurrentUser().getUid();
user.put("uid", uid);

// Add the document to the colleciton with a random ID
fDatasebase.collection("Users").add(user);

Para obtener todos los formularios para el usuario, sólo puede consulta "Usuarios" con un filtro en el uidcampo.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=275743&siteId=1
Recomendado
Clasificación