Ответ 1
Вы можете создавать сообщения с узлами пары идентификаторов пользователя. Например сообщения → 'uid1-uid2' → ...
Чтобы предотвратить то, что в первом порядке означает uids в алфавитном порядке, как следующий код кода сообщения:
public static String getMessageId(String id1, String id2){
String messageId;
if(id1.compareTo(id2) < 0){
messageId = id1 + "-" + id2;
}else if(id1.compareTo(id2) > 0) {
messageId = id2 + "-" + id1;
}else{
messageId = id1;
}
return messageId;
}
Если вы хотите просмотреть историю чата между пользователем и urself, получите идентификатор пользователя и сгенерируйте messageId = getMessageId(id1, id2); or messageId = getMessageId(id2, id1);
, чтобы получить тот же результат, поскольку заказ не влияет на результат.
Затем вызовите сообщения из node сообщений → messageId
P.S. вы должны реструктурировать свои сообщения node, как я описываю.
ИЗМЕНИТЬ
Вы можете преобразовать messageId в md5, эквивалентный сохранению символов.
просто измените
return messageId;
к
return md5(messageId);
где md5:
public static String md5(final String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest
.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}