我正在创建一个寻找食谱的应用程序,基本上,我有一个“收藏夹”,如果用户收藏了一个食谱,他们将可以在应用程序的“收藏夹”选项卡中轻松访问它。基本上这是我现在的结构:
app:
users:
2ReAGRZlYiV5F2piwMakz59XDzl1(uid):
favorites:
-KRUe6mMhaQOX62zgXvg(childByAutoId):
ID: 172171 (recipe id)
UTJ0rVst9zMSuQhWkikTCu8558C2(uid):
favorites:
-KRUzMxTvv-uNvX9J9_-(childByAutoId):
ID: 578141 (recipe id)
基本上,每当他们转到“收藏夹”选项卡时,我都需要所有配方ID的列表,以便可以进行API调用来检索配方信息。我基本上是在浏览字典。我还希望能够允许用户取消收藏该食谱,因此将其从数据库中删除。如果使用以下方法,如何将其删除:
USERS_REF.child(uid).child("favorites").childByAutoId().setValue(["ID": recipeID])
添加食谱?
有没有更好的结构可以用来读取配方ID并轻松删除它们?
您可能想考虑将收藏夹作为NSDictionary
:-
app:
users:
2ReAGRZlYiV5F2piwMakz59XDzl1: //(uid)
favorites:
{172171 : true,
4123123 : true,..}
USERS_REF.child(uid).child("favorites").updateChildValues([recipeID: "true"])
请注意,如果您的recipeID是唯一的,即在收藏夹节点上不存在,则只有它会追加该值,如果recipieID已经存在,它将仅更新其值(不希望使用此值进行追加,请查找下一个选项)
要么
let prntRef = USERS_REF.child(uid).child("favorites")
prntRef.observeSingleEventOfType(.Value, withBlock: { (snap) in
if let favDict = snap.value as? NSMutableDictionary{
favDict.setObject("true",forKey : recipeID)
prntRef.setValue(favDict)
} else {
prntRef.setValue(["true":recipeID])
}
})
对于最喜欢的 更新 :-
USERS_REF.child(uid).child("favorites").updateChildValues([recipeID: "false"]) //User doesn't like's the recipe anymore
对于 删除 从收藏夹: -
USERS_REF.child(uid).child("favorites").child(recipeID).removeValue() //User want to remove this item from its history
虽然 检索
let prntRef = USERS_REF.child(uid).child("favorites")
prntRef.observeSingleEventOfType(.Value, withBlock: {(snap) in
if let favDict = snap.value as? [String:AnyObject]{
for each in favDict{
let eachRecipeId = each.0 //recipeID
let isMyFav = each.1 // Bool
}
} else {
print("No favourites")
}
})
虽然 检索 对于已知 key-value
对
let prntRef = USERS_REFFIR.child("users").queryOrderedByChild("favorites/\(recipeID)").queryEqualToValue(true)
prntRef.observeSingleEventOfType(.Value, withBlock: {(snap) in
//snap containing all the Users that carry that recipeID in their favourite section
})
我正在一个聊天应用程序,其中消息存储在firebase实时数据库。现在,如果我创建一个如下所示的节点(Chats-Better-A-ID和-B-ID是自动生成的聊天室密钥),那么我想知道当用户S在聊天应用程序中打开与用户T聊天时,so数据库将只读取存储在Chats-Better-S-T-ID中的消息,而不会读取其他聊天室消息!?我说的对吗?如果是,那么它会降低定价吗? 或 如果我存储如下所示的数据
我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。 这就是我所做的一切。 依赖项: 实现'com.google.firebase: Firebase存储: 9.2.1' 实现'com。谷歌。firebase:firebase数据库:9.2。1' 实现'com。谷歌。firebase:firebase授权:9.2。1' 实现'com。谷歌。火基:火基核心:9.2。
我正在尝试读取我的Flutter应用程序中的firebase实时数据库中的数据,并将其分配给模型类,但是,我在控制台中得到了以下错误。 下面是我到目前为止所做的代码 员工类别 我不知道我做错了什么,请帮我解决这个问题
我正在使用Flutter,我想从我的实时数据库Firebase中检索一些数据。我的实时数据库Firebase中存储了以下数据: 如何从中获取每一条信息?例如,我只想得到“Tom”这个名字?
我正在尝试将用户保存到我的Firebase数据库。我正在使用创建帐户/登录。创建帐户后,我想将用户存储到我的Firebase数据库中。我目前可以登录用户,他们的电子邮件显示在Firebase的Auth选项卡中(见屏幕截图),但我的似乎没有任何影响(另见屏幕截图)。 我是否将updatechildvalue放在了正确的位置?它当前位于带有凭据的登录中。我还必须执行FBSDKGraphRequest以
我正在开发一个Android应用程序,它显示了一系列卡片,这些卡片包含一些信息(在主片段中),这些信息存储在本地SQLite数据库中。 就像这个问题中的Matteo一样,我已经实现了一个自定义回收器适配器(GitHub链接),以及一个用于滑动的自定义侦听器(SwipeableRecyclView),但面临着一个有点不同的问题。当我滑动我的carview项目时,它会返回到它的“开始位置”,并且可能之