嗨,我有一个用户填写在我的应用程序中的表格,其中包括以下内容:标题,用户名,密码,webAddress和注释。我当前的代码存储一个条目的数据没有问题,但是当我进入一个新条目时,数据将被覆盖。我需要能够存储表单的多个条目。我需要对代码进行哪些更改才能启用此功能?
字符串通过我程序中的其他代码加密,这就是为什么它被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);
}
问题来源:Stack Overflow
如果要为每个用户存储多个表单,则不能为每个表单使用相同的文档ID。您应该使用随机文档ID,并将用户ID作为字段存储在文档中。
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);
要获取用户的所有表单,您只需在uid字段上使用过滤器查询“用户”即可。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。