В настоящее время я работаю над приложением для викторины, где пользователь регистрируется с помощью электронной почты и pw через firebase.
После регистрации он должен передать псевдоним, который будет использоваться для рекорда.
Поэтому я хочу, чтобы приложение добавляло такую информацию о пользователях каждый раз, когда пользователь регистрируется, как показано на прилагаемом рисунке.
Для достиженияэто я использовал этот код:
public class createNickname extends AppCompatActivity {
private static final String TAG = "createNickname";
private FirebaseDatabase mFirebaseDatabase;
private FirebaseAuth.AuthStateListener mAuthListener;
private EditText NicknameInput;
private Button NicknameReg;
private String Nickname, UserId;
private FirebaseAuth mAuth;
private String EmailEntry;
private DatabaseReference myref = mFirebaseDatabase.getInstance().getReference();
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_nickname);
NicknameInput = (EditText)findViewById(R.id.etNickname);
NicknameReg = (Button)findViewById(R.id.btsetNickname);
mAuth = FirebaseAuth.getInstance();
myref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange( DataSnapshot dataSnapshot ) {
String value = dataSnapshot.getValue(String.class);
Log.d(TAG, "value is: " + value);
}
@Override
public void onCancelled( DatabaseError databaseError ) {
Log.w(TAG, "Failed to read value.", databaseError.toException());
}
});
NicknameReg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick( View view ) {
Log.d(TAG, "onClick: Attempting to add object to database.");
String newNick = NicknameInput.getText().toString();
if (!newNick.equals("")) {
FirebaseUser user = mAuth.getCurrentUser();
UserId = user.getUid();
EmailEntry = user.getEmail();
myref.child("userlist").push().setValue(UserId);
myref.child("userlist").child(UserId).push().setValue(EmailEntry);
myref.child("userlist").child(UserId).push().setValue(0);
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
}
});
}
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = mAuth.getCurrentUser();
}
}
Итак, вопрос сейчас, что я сделал не так?Пользователь создается в окне аутентификации в firebase, но база данных просто не обновляется.
Правильно ли я настроил базу данных?Как вы решили, на какую базу данных вы хотите настроить таргетинг?
Это мои правила безопасности Firebase: {"rules": {".read": false, ".write": false}}
Что касается базы данных, то ничего не происходит, если я все понял правильно.
Я не получаю сообщения об ошибках, что когда-либо.