gpt4 book ai didi

android - 从 Firebase 数据创建一个 ArrayList

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:46 35 4
gpt4 key购买 nike

我在我的 Android 应用程序中为我的 MainActivity 定义了一个 ArrayList。

我在尝试了解如何检索用户的兴趣并将其添加到我的数组列表时遇到了困难。

我的 Firebase 数据是这样设置的:

FirebaseData

我知道我必须异步加载数据,但我对应该如何处理感到困惑。

这是我尝试添加到 ArrayList 的代码:

public class MainActivity extends AppCompatActivity {


private DatabaseReference eventDatabase;
private DatabaseReference usersDatabase;

private FirebaseAuth mAuth;
private String currentUserID;

private ArrayList<String> userInterests = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

eventDatabase = FirebaseDatabase.getInstance().getReference().child("Event");
usersDatabase = FirebaseDatabase.getInstance().getReference().child("Users");

mAuth = FirebaseAuth.getInstance();

currentUserID = mAuth.getCurrentUser().getUid();

usersDatabase.child(currentUserID).child("interests").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
boolean isInterested = (Boolean)postSnapshot.getValue();
if (isInterested){
userInterests.add(postSnapshot.getKey());
}
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

System.out.println(userInterests);

我希望ArrayList包含用户的兴趣,如果在数据库中为false,则不会添加到列表中。示例:[竞争、文化、教育...等]

当它在控​​制台返回列表时,我只看到一个空列表 -- "[]"

最佳答案

这就是你想要的。

usersDatabase.child(currentUserID).child("interests").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
boolean isInterested = (Boolean)postSnapshot.getValue();
if (isInterested) {
userInterests.add(postSnapshot.getKey());
}
}

关于android - 从 Firebase 数据创建一个 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41358825/

35 4 0