gpt4 book ai didi

Android - Firebase 复杂(或非复杂)查询 - 唯一 ID 问题

转载 作者:搜寻专家 更新时间:2023-11-01 07:49:28 24 4
gpt4 key购买 nike

今天我在使用 Firebase 进行查询时遇到了一个问题,例如:“给我具有该特定 UID(用户唯一 ID)的用户的所有项目”

项目是使用推送方法添加的,它会创建一个唯一 ID。有什么方法可以绕过此类请求的唯一 ID?

如有任何帮助,我们将不胜感激。

非常感谢,

Firebase 结构: current firebase structure

当前代码:

//New firebase instance
Firebase mFirebase = new Firebase(Constants.FIREBASE_ITEMS_URL);

//Query on records to find items related to users only
mQuery = mFirebase.child(uid).orderByChild(uid).equalTo(uid);

mQuery.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
getUpdates(dataSnapshot);
}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
getUpdates(dataSnapshot);
}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
getUpdates(dataSnapshot);
}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
getUpdates(dataSnapshot);
}

@Override
public void onCancelled(FirebaseError firebaseError) {
Log.i(LOG_TAG, String.valueOf(firebaseError));
}
});

最佳答案

我能看到的实现“给我具有该特定 UID(用户唯一 ID)的用户的所有项目” 的最佳方法是修改您的用户 firebase 结构,如下所示:

{
users: {
user1: {
user_details { //whatever you need in here// }
items: {
-KHZlfskXT_aQtVOZytd: true,
item1: true,
item2: true,
item3: true
}
}
}
}

然后您可以针对它进行查询并获取每个用户的所有 itemId 列表,然后您可以使用该 itemId 列表来检索相应的项目——要使用此布局发出请求:(我已经写好了在javascript中)

var userItemsRef = mFirebase.child('users').child(uid).child('items')
var itemsRef = mFirebase.child('items');

userItemsRef.on('child_added', function(dataSnap) {
itemsRef.child(dataSnap.key()).once('value', function(snap) {
// do whatever you need to with the item
});
});

以后要阅读此类内容,请查看 this article on denormalising your data in firebase

关于Android - Firebase 复杂(或非复杂)查询 - 唯一 ID 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37185418/

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