можно ли связать аутентификацию firebase с базой данных реального времени

#android #firebase-realtime-database #firebase-authentication

#Android #firebase-база данных в реальном времени #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(); Вместо даты вычисления и т. Д.