如何在android studio JAVA中从firebase检索值并向其添加值并更新到firebase
我是安卓工作室的新手,试图实现一个具有积分奖励功能的系统。 在我的注册中,当用户成功注册帐户时,它将自动获得1000点积分 然后,在我的奖赏片段中。我有一个按钮叫做addButton,另一个是名为currentPoint的textView 然后,这是我的代码,我只是把它读出来并试图添加如何在android studio JAVA中从firebase检索值并向其添加值并更新到firebase,java,android,firebase,Java,Android,Firebase,我是安卓工作室的新手,试图实现一个具有积分奖励功能的系统。 在我的注册中,当用户成功注册帐户时,它将自动获得1000点积分 然后,在我的奖赏片段中。我有一个按钮叫做addButton,另一个是名为currentPoint的textView 然后,这是我的代码,我只是把它读出来并试图添加 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedI
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_reward, container, false);
ButterKnife.bind(this, view);
mAuth = FirebaseAuth.getInstance();
mFirestore = FirebaseFirestore.getInstance();
currentUser = mAuth.getCurrentUser();
user = currentUser.getDisplayName();
loadUser();
return view;
}
private void loadUser(){
DocumentReference docRef = mFirestore.collection("UserInfo").document(currentUser.getUid());
docRef.get().addOnCompleteListener(task -> {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
mCurrentPoint.setText(document.get("points").toString());
}
});
}
我想要的最终结果是,从firebase获得数字,并在更新到firebase时添加200。请帮帮我。你可以做点什么来增加以前的积分
Button button = (Button) view.findViewById(R.id.add_points);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
DocumentReference docRef = mFirestore.collection("UserInfo").document(currentUser.getUid());
docRef.get().addOnCompleteListener(task -> {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
int freePoints = -200;
Double points = Double.parseDouble(document.get("points").toString());
Map<String,Object> updates = new HashMap<>();
updates.put("points", points + freePoints);
docRef.update(updates).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d(TAG, "Points successfully updated!");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Error updating document", e);
}
});
}
});
}
});
Button Button=(Button)view.findviewbyd(R.id.add_points);
setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
DocumentReference docRef=mFirestore.collection(“UserInfo”).document(currentUser.getUid());
docRef.get().addOnCompletListener(任务->{
if(task.issusccessful()){
DocumentSnapshot document=task.getResult();
int自由点=-200;
Double points=Double.parseDouble(document.get(“points”).toString());
映射更新=新的HashMap();
更新。放置(“点数”,点数+自由点数);
docRef.update(updates).addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公开作废(作废避免){
Log.d(标记“点成功更新!”);
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Log.w(标签“错误更新文档”,e);
}
});
}
});
}
});
请发布您遇到的错误?抱歉,该错误已在1分钟前通过添加一些声明修复//上面的代码是最新的1。请查看我的答案是否对您有帮助,您是否尝试过更新代码?