如何在android studio JAVA中从firebase检索值并向其添加值并更新到firebase

如何在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

我是安卓工作室的新手,试图实现一个具有积分奖励功能的系统。 在我的注册中,当用户成功注册帐户时,它将自动获得1000点积分

然后,在我的奖赏片段中。我有一个按钮叫做addButton,另一个是名为currentPoint的textView

然后,这是我的代码,我只是把它读出来并试图添加

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。请查看我的答案是否对您有帮助,您是否尝试过更新代码?