我是Firebase的新手,我想在数据库中为每个用户添加每个用户完成的登录次数。每次用户登录时,如何添加和更新它。 CreateAccount活动
public class CreateAccount extends AppCompatActivity {
private EditText rEmail, rPassword;
private Button rButton;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_account);
rEmail = (EditText) findViewById(R.id.reg_email_et);
rPassword = (EditText) findViewById(R.id.reg_password_et);
rButton = (Button) findViewById(R.id.sign_up_button);
mAuth = FirebaseAuth.getInstance();
rButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
attemptReg();
}
});
}
private void attemptReg(){
final String email = rEmail.getText().toString();
final String pass = rPassword.getText().toString();
mAuth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
//make no of login = 1
}
}
});
}
}
答案 0 :(得分:0)
当问题搁置了几个小时后,我在评论的帮助下找到了答案。顺便谢谢你。
创建帐户活动:
public class CreateAccount extends AppCompatActivity {
private EditText rEmail, rPassword;
private Button rButton;
private FirebaseAuth mAuth;
private FirebaseUser user;
private FirebaseDatabase database;
private DatabaseReference mRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_account);
rEmail = (EditText) findViewById(R.id.reg_email_et);
rPassword = (EditText) findViewById(R.id.reg_password_et);
rButton = (Button) findViewById(R.id.sign_up_button);
mAuth = FirebaseAuth.getInstance();
database = FirebaseDatabase.getInstance();
rButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
attemptReg();
}
});
}
private void attemptReg() {
user = mAuth.getCurrentUser();
mRef = database.getReference("users").child(user.getUid()).child("login_count");
String email = rEmail.getText().toString();
String pass = rPassword.getText().toString();
mAuth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
mRef.setValue(1);
}
}
});
}
}
对于后续登录:
private void incrementLogincount(){
mRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Integer loginCount = dataSnapshot.getValue(Integer.class);
loginCount++;
mRef.setValue(loginCount);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}