Хелу, ребята! Я создаю приложение и хочу, чтобы каждый пользователь сохранял свою информацию, и она будет храниться в моей базе данных Firebase в реальном времени. Я просмотрел множество учебных пособий, но ничего не получилось. Я создал что-то простое. Кнопка, которая дает команду сохранить данные, 2 EditText для имени и имени. Моя проблема в том, что в базе данных ничего не написано. Я хочу, чтобы каждый вошедший в систему пользователь сохранял свою информацию отдельно. Аутентификация firebase завершена. Я создал класс UserDetails, который получил и установил имя и второе имя. Я только инициализировал кнопку и EditText, потому что я удалил команды для базы данных реального времени, потому что она не работала, и мое приложение зависало, когда Я открыл активность UserDetails.
I
UserDetails (класс активности)
package com.example.myapplication;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class UserDetails extends AppCompatActivity {
private FirebaseAuth auth;
private DatabaseReference reference;
private FirebaseDatabase database;
private FirebaseAuth.AuthStateListener authStateListener;
private FirebaseUser user;
private EditText firstName;
private EditText secondName;
private Button saveInfo;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate ( savedInstanceState );
setContentView ( R.layout.activity_user_details );
firstName=(EditText)findViewById ( R.id.firstname );
secondName=(EditText)findViewById ( R.id.secondname );
saveInfo=(Button)findViewById ( R.id.data );
auth=FirebaseAuth.getInstance ();
}
}
Пользователь (для получения и установки)
package com.example.myapplication;
public class User {
public String firstName;
public String secondName;
public String uid;
public String email;
public User(){
}
public User (String firstName, String secondName, String uid, String email) {
this.firstName = firstName;
this.secondName = secondName;
this.uid=uid;
this.email=email;
}
public User (String firstname, String secondname) {
}
public String getFirstName () {
return firstName;
}
public String getSecondName () {
return secondName;
}
public String getUid () {
return uid;
}
public String getEmail () {
return email;
}
public void setFirstName (String firstName) {
this.firstName = firstName;
}
public void setSecondName (String secondName) {
this.secondName = secondName;
}
public void setUid (String uid) {
this.uid = uid;
}
public void setEmail (String email) {
this.email = email;
}
}
Правила для базы данных в реальном времени
{
"rules": {
".read": "auth != null",
"$user_id":{
".read": "auth.uid === $user_id",
".write": "auth.uid === $user_id"
}
}
}
Данные в базе данных в реальном времени
sports-buddy-eb866
users
firstname:
true
secondname:
true
Я хочу сохранить каждую информацию под userID после того, как пользователь вошел в систему, но ничего не написано.