当我使用JS客户端sdk运行以下代码
import { firestore } from "../../../firebase";
export default async (userId) => {
const userRef = firestore.collection("users").doc(userId);
const userDoc = await userRef.get();
if (!userDoc.exists) {
throw new Error("User doesn't exist");
}
console.log(JSON.stringify(userDoc.data(), null, 2));
const userData = {
id: userDoc.id,
...userDoc.data(),
};
return userData;
};
多次,对于相同的userId,不改变数据库中的任何内容,我得到相同的数据,但无序字段:
{ // 1st fetch
name: "a",
age: 10,
avatar: {
uri: "x",
thumbnailUri: "y"
}
}
....
{ // 2nd fetch
name: "a",
avatar: {
thumbnailUri: "y",
uri: "x"
},
age: 10
}
这背后的原因是什么?是否有可能总是得到一个有序的版本?
Firestore文档包含JSON格式的数据,并且无法保证JSON对象中字段的顺序。如果您需要对字段进行排序,则必须在客户端上进行。
请参阅这篇文章了解更多信息