我正在启动一个应用程序(JS / React),我想使用 Firebase 身份验证系统(因为它很强大),并使用 MongoDB 数据库(在 MongoDB Atlas -Cloud- 上)来存储数据(比 Firestore 更高效 && 我使用后端的 GraphQL)。我仍然想使用 Firebase 身份验证,因为我现在不想陷入身份验证兔子洞......
Firebase 为新创建的用户生成一个 id(以令牌形式发送),然后我希望在 Mongo 上有一个“用户”集合来存储有关这些用户的数据。
这是我的问题:firebase auth 生成的 id 不符合 MongoDb Atlas 所需的 id 语法,以适应 ObjectId 类型。这是 Firebase 生成的 id:
zOw5ERvHyucA3fPYlXlaa4SI1D23
Run Code Online (Sandbox Code Playgroud)
这是我从 mongo 收到的错误:“必须是 24 个十六进制字符的字符串”。工作 ID 示例:
5e7d4a383cae9a2218b45a55
Run Code Online (Sandbox Code Playgroud)
我可以使用 Stings 作为 Mongo 中的主键,但我会失去 ObjectIds 的效率。目前,我为我的用户添加了“authId”属性,但我认为这不是最佳选择。
你怎么认为 ?有什么建议吗?
谢谢 !
使用 compose,我想创建这样的东西:
问题是使用 compose AlertDialog 我只能实现以下目的:
AlertDialog 边框和标题之间存在无法删除的填充。如何使用 Compose 删除它?使用Modifier.padding(all = 0.dp)
不行。我在各个层面都尝试过。
我正在尝试在评论部分实现分页。
我在网站上有正常的视觉行为。当我单击“获取更多”按钮时,会添加 10 条新评论。
我的问题是请求每次执行两次。我不知道为什么。第一次,它使用游标值执行,第二次没有它。似乎在每次 fetchMore 之后都会执行 useQuery 钩子。
任何帮助,将不胜感激。谢谢!
成分 :
export default ({ event }) => {
const { data: moreCommentsData, fetchMore } = useQuery(getMoreCommentsQuery, {
variables: {
id: event.id,
},
fetchPolicy: "cache-and-network",
});
const getMoreComments = () => {
const cursor =
moreCommentsData.event.comments[
moreCommentsData.event.comments.length - 1
];
fetchMore({
variables: {
id: event.id,
cursor: cursor.id,
},
updateQuery: (prev, { fetchMoreResult, ...rest }) => {
return {
...fetchMoreResult,
event: {
...fetchMoreResult.event,
comments: [
...prev.event.comments,
...fetchMoreResult.event.comments,
],
commentCount: fetchMoreResult.event.commentCount,
}, …
Run Code Online (Sandbox Code Playgroud)