gpt4 book ai didi

java - addListenerForSingleValueEvent 不断重复输出

转载 作者:行者123 更新时间:2023-12-01 17:34:14 25 4
gpt4 key购买 nike

我使用 addListenerForSingleValueEvent 将值添加到当前用户的子“代码”中,但数据是重复的。 Here is the database before the coding

这是 addListenerForSingleValueEvent 的编码

b4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAuth = FirebaseAuth.getInstance();
mUser = mAuth.getCurrentUser();
final String UserId = mUser.getUid();

mReference = FirebaseDatabase.getInstance().getReference("Users");
final DatabaseReference currentUserId = mReference.child(UserId);
currentUserId.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
user.setCode(riasec1);
currentUserId.child(UserId).setValue(user);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});




}
});

Here is the database after the coding is executed为什么整个用户被复制而不是仅插入值“代码”?

最佳答案

当你打电话时

currentUserId.child(UserId).setValue(user);

您的意思是“将整个用户添加到名为“UserId”的节点中”。一般来说,您会获取整个用户,更新一个字段并再次更新。

<小时/>

因此,您何时想更新子对象而不重写整个对象,您应该传递节点名称,例如

currentUserId.child(UserId).child("code").setValue(riasec1);

在这次通话中,您说:

  • 查找具有正确 ID (UserId) 的节点
  • 查找节点“code”
  • 设置新值 (riasec1)

关于java - addListenerForSingleValueEvent 不断重复输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com