gpt4 book ai didi

java - Firebase 数据库如何知道用户在哪里编辑值

转载 作者:行者123 更新时间:2023-11-29 04:15:35 25 4
gpt4 key购买 nike

我有一个结构,我需要使用某个父级以下的用户登录,我需要知道我在哪个父级中以便修改该父级和我的用户 ID,这是我的数据库结构

enter image description here

现在,我使用用户节点下方的用户 ID 之一登录应用程序,现在,我需要知道该用户的父级以便修改该父级下方的用户

例子

我用用户 RgF82BBZXhahtgYeZDWXwCk1q6b2 登录,现在我需要知道它在 9MmrGOJz9ePksi.... parent 中,以便在该父级和该用户中添加数据

尝试了这段代码,但它只对随 secret 钥执行此操作,而不是对包含该用户的 key 执行此操作

mDatabase.child("MyApp").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
String key = snapshot.getKey();

mDatabase.child("MyApp").child(key).child("users").child(mAuth.getCurrentUser().getUid()).child("apples").setValue("3");

}
}

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

}
});

最佳答案

使用您当前的数据结构,没有有效的方法来查找已知用户 ID 的父级。 Firebase 数据库不支持查询列表中是否存在特定值。

与 NoSQL 数据库一样,解决方案是添加一个额外的数据结构,确实允许您的用户案例。在这种情况下,这将是一个简单的反向查找,其中用户 ID 是键,父键是值。

类似于:

userLookup
RgF82BBZXhahtgYeZDWXwCk1q6b2: 9MmrGOJz9ePksi....
dRnalqAWm3............MM6vb2: 9MmrGOJz9ePksi....

现在您可以轻松查找给定用户 ID 的父键,然后在现有结构中找到他们的数据。

有关更多数据建模技巧,请参阅:

关于java - Firebase 数据库如何知道用户在哪里编辑值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52556483/

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