Liz*_*izG 2 java android firebase firebase-realtime-database
将费率设置为默认值 =“0”,但结果为空。费率值(费率添加到 Rider.class 中)不会像应有的那样添加到 Firebase 中的表中...
任何如何修复的想法将不胜感激......
导航标题首页
<TextView
android:id="@+id/txtStars"
android:text="4"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
家
// properties:
Textview txtStars;
// onCreate:
View navigationHeaderView = navigationView.getHeaderView(0);
txtStars = navigationHeaderView.findViewById(R.id.txtStars);
txtStars.setText(String.format("%s", Common.currentUser.getRates()));
Run Code Online (Sandbox Code Playgroud)
主要活动
// showRegisterDialog() ...
// Register new user
auth.createUserWithEmailAndPassword(edtEmail.getText().toString(),
edtPassword.getText().toString())
.addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
// Save user to db
Rider rider = new Rider();
rider.setRates("0");//<---- default value
Run Code Online (Sandbox Code Playgroud)
主页.java
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_signOut) {
signOut();
} else if (id == R.id.nav_updateInfo) {
showUpdateInfoDialog();
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
在MainActivity中的AutoLogin方法....(因为它有自动登录功能),还得添加;
// fetch data an save to variable
FirebaseDatabase.getInstance().getReference(Common.user_rider_tbl)
.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Common.currentUser = dataSnapshot.getValue(Rider.class);
waitingDialog.dismiss();
Intent i = new Intent(RiderActivity.this,
Home.class);
startActivity(i);
finish();
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
Run Code Online (Sandbox Code Playgroud)
调试时,txtStars = null
如果您想将速率的默认值设置为零,那么我只需在初始化变量时将该值设置为零即可。
private String rates = "0";
Run Code Online (Sandbox Code Playgroud)
或者您可以在构造函数中设置默认值,如下所示:
public Rider() {this.rates = "0";}
Run Code Online (Sandbox Code Playgroud)
这样,费率值的默认值将始终为零,请告诉我这是如何实现的!:)
| 归档时间: |
|
| 查看次数: |
1058 次 |
| 最近记录: |