如何使用 VueJS 3 检索用户在 Firebase 中创建的日期

问题描述 投票:0回答:1

我在 Firestore 数据库中有一个“配置文件”集合。该集合包含我需要的大部分数据,但没有用户的创建日期。在“身份验证”数据库中,有一个创建的列,其中包含用户的创建日期。

我想在列表中显示用户的创建日期。从 Firebase 集合“配置文件”检索的所有数据都显示正常,但我在从身份验证获取数据时遇到问题。如果日期未成功检索,我将收到 N/A 作为后备。到目前为止,我所有的细胞都显示 N/A。

v-for 循环进入配置文件,但不循环进入身份验证,也许这就是问题所在?

我错过了什么?

 <tr v-for="user in profiles" :key="user.id">
            <td scope="col-1" class="fs-7 py-2 px-3">{{ formatDate(user) }}</td>
              </td>
</tr>

脚本在这里:

import { ref, onMounted } from "vue";
import { db } from "../firebase";

import {
  collection, deleteDoc, doc,
  getDocs, updateDoc,
} from "firebase/firestore";

export default {
    setup() {
        const profiles = ref([]);
        const fetchData = async () => {
            try {
                const profilesSnapshot = await getDocs(collection(db, "profiles"));
                profiles.value = profilesSnapshot.docs.map((doc) => {
                    return {
                        id: doc.id,
                        ...doc.data(),
                    };
                });
            } catch (error) {
                console.error("Error fetching data:", error);
            }
        };
        onMounted(async () => {
            await fetchData();
        });
        const formatDate = (user) => {
  if (user.metadata && user.metadata.creationTimestamp) {
    const date = new Date(user.metadata.creationTimestamp.seconds * 1000); // Assuming timestamp is in seconds
    return date.toLocaleDateString(); 
  } else {
    return 'N/A'; // This is the value I am getting now.
  }
};
        return {
          profiles,
          formatDate, 
        };
    },
};
javascript firebase firebase-authentication vuejs3
1个回答
0
投票

Firebase 身份验证客户端 SDK(例如您正在使用的 JavaScript 开发工具包)可以让您访问当前登录用户的创建时间戳,但无法访问其他用户的个人资料信息。

如果您需要所有用户的此信息,则应将其存储在数据库中 - 就像处理其他个人资料信息一样。

© www.soinside.com 2019 - 2024. All rights reserved.