添加用户在Firebase上的登录次数

时间:2018-08-23 17:57:56

标签: android firebase

我是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
                }
            }
        });
    }
}

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) {
    }
});

}