#android #firebase-realtime-database #firebase-authentication
#Android #firebase-база данных в реальном времени #firebase-аутентификация
Вопрос:
Есть ли способ, которым я могу сделать что-то вроде следующего.
Дело в том, что я не могу понять, как подключить его к моей аутентификации, которая содержит мои идентификаторы пользователей.
Может кто-нибудь объяснить или привести мне пример?
Редактировать: код из комментария к ответу:
Integer num1 = Integer.parseInt(edt1.getText().toString());
Integer num2 = Integer.parseInt(edt2.getText().toString());
Integer result = num1 num2;
String data = Date result;
DateView.setText("Date Computed: " Date Hrs "n n Computed Result: " result);
HashMap<String, Integer> userMap = new HashMap<>();
userMap.put(Hrs, result);
rootNode = FirebaseDatabase.getInstance();
reference = rootNode.getReference("Users").child("UserID").child("Logs");
reference.push().child(Date).setValue(userMap);
Ответ №1:
Вы захотите записать данные под узлом, который использует UID в качестве ключа. Итак, первым шагом является определение UID текущего пользователя:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
А затем вы используете это для записи в базу данных:
rootNode = FirebaseDatabase.getInstance();
reference = rootNode.getReference("Users").child(uid).child("Logs");
reference.setValue(userMap);
Этот код совпадает с JSON, который вы показываете в своих вопросах. Если вы хотите автоматически генерировать уникальные дочерние узлы в разделе Logs
, вы можете использовать push()
для этого.
Комментарии:
1. о, боже, ты спасатель, я не могу найти никаких решений, я попробую это позже
Ответ №2:
Сохраните пользователей в своей базе данных, когда пользователь завершит процесс регистрации. т.е.
users
userId1
name XYZ
email XYZ
........
userId2
name XYZ
email XYZ
........
Комментарии:
1. да, именно так это должно выглядеть в базе данных реального времени, но я не знаю правильного кода и правильного способа его хранения
2. не могли бы вы подробнее рассказать, чтобы я мог вам помочь
3. Целое число num1 = Integer.parseInt(edt1.getText().toString()); Целое число num2 = Integer.parseInt(edt2.getText().toString()); Целочисленный результат = num1 num2; Строковые данные = Дата результат; DateView.setText(«Вычисленная дата: » Дата Часы «n n Вычисленный результат: » результат); HashMap<Строка, целое число> userMap = новая хэш-карта<>(); userMap.put(Hrs, результат); rootNode = FirebaseDatabase.getInstance(); ссылка = rootNode.getReference(«Пользователи»).дочерний элемент («Идентификатор пользователя»).дочерний элемент («Журналы»); reference.push().дочерний элемент (дата).setValue(userMap);
4. у меня есть эта строка, которая может создать дерево базы данных, подобное этому:
5. получите идентификатор пользователя из строки uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); Вместо даты вычисления и т. Д.