import { collection, limit, query } from "firebase/firestore"
import { useFirestore, useCollection } from "vuefire"
const db = useFirestore()
const messagesRef = collection(db, 'rooms/1/messages')
const messages = useCollection(query(messagesRef, limit(3)))
console.log(messages.value)
messages.value应该是一个3个元素的数组,但是我得到了一个空的。然而,如果我只打印消息(console.log(messages)),我会在值字段中看到预期的值。我不知道这是vufire bug还是什么。使用firebase API一切都很好
1条答案
按热度按时间tpxzln5u1#
假设这是一个异步操作来检索这些值,那么记录到您的开发控制台的
console.log(messages)
实际上会更新自己以显示“实时”异步结果。不要使用console.log(obj),使用console.log(JSON.parse(JSON.stringify(obj)))。
这样你就可以确信你在记录obj的时候看到了它的值。否则,很多浏览器提供的实时视图会随着值的变化而不断更新。这可能不是你想要的。
作为一个数组,
console.log(messages.value)
将在异步操作完成之前立即记录日志(因此为空数组)。要真正测试它,请尝试console.log(JSON.parse(JSON.stringify(messages)))
。我认为您应该再次得到空结果。