gpt4 book ai didi

ios - 快速显示所有 firebase 用户的帖子

转载 作者:搜寻专家 更新时间:2023-10-31 22:43:18 25 4
gpt4 key购买 nike

我需要使用 firebase 作为后端创建一个 UISearchController。我目前在 firebase 中有两个用户。一个用户发布了一个帖子,另一个用户发布了四个帖子。我希望能够在我的数据库中搜索所有书籍的标题(有五本书)。但是,目前我只能搜索当前登录用户上传的图书。下面是我的数据库的截图以及我的代码当前的截图。

Here is a screenshot of what my database looks like

databaseRef.child("posts").child(userID!).observe(.childAdded, with: { (snapshot) in


let key = snapshot.key
let snapshot = snapshot.value as? NSDictionary
snapshot?.setValue(key, forKey: "uid")

if(key == self.loggedUser?.uid)
{
print("same as logged in user")
}
else
{
self.usersArray.append(snapshot)
self.followUsersTableView.insertRows(at: [IndexPath(row:self.usersArray.count-1,section:0)], with: UITableViewRowAnimation.automatic)
}



}) { (error) in
print(error.localizedDescription)
}

}

最佳答案

您将需要一个名为 Books 的不同父节点:-

现在你的 JSON 是这样的:-

posts : {
userID1 : {
BOOK_11_ID : {.....}
};

userID2 : {
BOOK_21_ID : {.....},
BOOK_22_ID : {.....},
BOOK_23_ID : {.....},
BOOK_24_ID : {.....},
}
}

您必须将数据库 JSON 结构修改为:-

 posts : {

Users_books :{
userID1 : {
BOOK_11 : true // Value 'true' means that this user
// has subscribed or bought this book or whatever
};

userID2 : {
BOOK_21 : true,
BOOK_22 : true,
BOOK_23 : true,
BOOK_24 : true,
}
},

Books:{
BOOK_11_ID : {/Book details/};
BOOK_21_ID : {/Book details/};
BOOK_22_ID : {/Book details/};
BOOK_23_ID : {/Book details/};
BOOK_24_ID : {/Book details/};
}

}

修改“书籍”部分的安全规则,使其对所有经过身份验证的用户可见。

{
"rules" :{

"Users_books" : {

".write" : "auth != null && auth.uid === $uid", // Will allow only the user to make any change within its node and no-one else
".read": "auth != null && auth.uid === $uid"

},
"Books" : {
".write" : "auth != null", // Will allow all the users that are authenticated to your app to access every books detail.
".read" : "auth != null"
}
}
}

现在你要做的是:-

1) 如果是创建图书的用户;然后将图书详细信息存储在图书 uid 下的父节点 'Books' 中,并在用户节点中将 book_ID 的值设置为 true。

2) 如果数据库都是后端,即你输入它;每当用户订阅或购买一本书时,只需获取该书的 uid 并在该用户的部分将其设置为 true。

PS:始终扇出您的数据库;从中搜索起来要容易得多。尽管我很确定您会想在不久的将来存储用户的一些个人详细信息,因此只需创建另一个节点即可。将其命名为 'Users',安全规则将与 'Users_books' 相同,并且在 'Users' 父节点下附加每个用户的详细信息他们的 uid 作为他们的 key 。

关于ios - 快速显示所有 firebase 用户的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42730959/

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