gpt4 book ai didi

java - Firebase Android 读取数据 -> 处理 -> 更新数据 "Global variable problem"

转载 作者:行者123 更新时间:2023-12-02 10:24:15 26 4
gpt4 key购买 nike

我必须从 Firebase 获取数据并删除某些值,然后将数据保存到 Firebase。这是我的 Activity 中的读取功能:

 private void readData() {
mAuth = FirebaseAuth.getInstance();
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
DatabaseReference currentUserDB = mDatabase.child(mAuth.getCurrentUser().getUid());
currentUserDB.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Map<String,Object> map = (Map)dataSnapshot.getValue();
kwotaKonta= ((String)map.get("account"));

当我在“onDataChange”中制作所有内容时,它会被一遍又一遍地删除,所以我尝试创建名为“kwotaKonta”的全局变量并将其设置为 onCreate,但是当函数结束时“kwotaKonta”为空。如何从 onDataChange 获取值?

谢谢!

最佳答案

its remove over and over

发生这种情况是因为您使用的是 addValueEventListener 而不是 addListenerForSingleValueEvent。每次数据库中发生更改时都会触发 ValueEventListener。因此,如果您从数据库中删除某些内容,您的 onDataChange() 方法会再次触发。

要解决此问题,请更改:

currentUserDB.addValueEventListener(/* ... */);

currentUserDB.addListenerForSingleValueEvent(/* ... */);

来自official documentation请参阅:

addListenerForSingleValueEvent(ValueEventListener listener) - Add a listener for a single change in the data at this location.

addValueEventListener(ValueEventListener listener) - Add a listener for changes in the data at this location.

关于java - Firebase Android 读取数据 -> 处理 -> 更新数据 "Global variable problem",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54094850/

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