如何在React中获取firestore的文档id

T. *_*ter 5 javascript firebase reactjs google-cloud-firestore

这是我的 Firestore 数据库: 在此输入图像描述 更新锻炼常量后useEffect(),我只能访问名称和 uId。我如何才能访问文档 ID?

import React, { useState, useEffect } from "react";
import "./Workouts.sass";
import Workout from "./Workout";
import firebase from "./firebase";

function Workouts() {
  const [workouts, setWorkouts] = useState([]);

  useEffect(() => {
    let user = firebase.auth().currentUser;
    const database = firebase.firestore();
    const unsubscribe = database
      .collection("workouts")
      .where("uId", "==", user.uid)
      .onSnapshot((snapshot) => {
        setWorkouts(snapshot.docs.map((doc) => doc.data()));
      });

    return () => {
      unsubscribe();
    };
  }, []);

  return (
    <div className="Workouts">
      {workouts.map((workout) => (
        <Workout key={workout.name} workout={workout} />
      ))}
    </div>
  );
}

export default Workouts;

Run Code Online (Sandbox Code Playgroud)

Lou*_*let 11

您可以使用快照 doc.id
我喜欢将 id 作为属性添加到对象中:

snapshot.docs.map((doc) => ({id: doc.id, ...doc.data()}))
Run Code Online (Sandbox Code Playgroud)