Vuexfire bindFirestoreRef 不等待绑定完全解决

Posted

技术标签:

【中文标题】Vuexfire bindFirestoreRef 不等待绑定完全解决【英文标题】:Vuexfire bindFirestoreRef doesn't wait for binding to be completely resolved 【发布时间】:2021-11-08 22:41:54 【问题描述】:

绑定到 Firestore 集合时,我遇到了一个奇怪的场景。基本上,我得到了 x 个文件。但我注意到,当 then() 函数中的代码运行时,它不会一次返回所有数据。但是当它检索到所有文档时。所以,我的问题是为什么绑定过早完成?根据 vuexfire 文档:

返回一个 Promise,一旦数据完成就解决 获取并同步到状态。

我只调用这个函数一次,所以如果文档是正确的,在 promise 解决之前不应该获取所有 5 个事件吗?

这是我的代码

setFirstUsers: firestoreAction((context,str) => 
  return context.bindFirestoreRef("firstUsers",db.collection("Users").orderBy("name","asc").startAt(`$str`).endAt(`$str\uf8ff`).limit(10),
  serialize:customSerializer).then((users)=>
      console.log("First users:",users);
      context.commit("mergeUsers");
      context.commit("setLoadMoreFriendLast");
  );
),

当承诺被解决时,它不会得到所有的文件。过了一会儿,得到所有文件。 可以通过添加几个 2000 毫秒超时来修复它,但这似乎不是最佳解决方案。

感谢

【问题讨论】:

【参考方案1】:

我从未使用过 vuexfire,但我猜你应该使用

Async 和 await 运算符等待结果。

Here you can read about it.

【讨论】:

以上是关于Vuexfire bindFirestoreRef 不等待绑定完全解决的主要内容,如果未能解决你的问题,请参考以下文章

Vuexfire 将 Firestore 集合绑定到 Object 而不是 List

如何从 VueFire 查询中获取最后一个文档

为啥 vuexfire 不更新状态而是正确更新 ui?

使用 vuexfire 动态绑定 firebase 集合列表

使用 Vuex 操作 Firebase 集合中的文档 [Vuex/Vuexfire]

Firestore、vue、vuex、vuexfire:如何让 getter 真正从存储中获取数据?