Tìm kiếm trang web

Cố gắng truy cập "firebase.firestore.Timestamp" sử dụng Typescript. Lỗi: Thuộc tính 'Timestamp' không tồn tại trên kiểu '() => Firestore'


Tôi đang chuyển dự án React + Firebase của mình sang Typescript.

Dòng này trước đây hoạt động tốt trên JS.

const todayTimestamp = firebase.firestore.Timestamp.fromDate(new Date());

Nhưng sau khi chuyển sang Typescript, tôi nhận được lỗi sau:

const todayTimestamp = firebase.firestore.Timestamp.fromDate(new Date());

// Property 'Timestamp' does not exist on type '() => Firestore'.

Lưu ý: firebase có kiểu firebase.app.App

Xem tài liệu tham khảo của Firebase:

https://firebase.google.com/docs/reference/js/firebase.firestore

Nó giống như Typescript không tìm thấy các kiểu và lớp cho firebase.firestore. Xem những gì có sẵn:

CÂU HỎI

Đây có phải là một lỗi hay tôi đang làm gì đó sai?

Câu trả lời #1

Cách bạn đang sử dụng firebase không đúng để truy cập các loại dữ liệu. Bạn không thể hiện ở đây cách bạn định nghĩa đầy đủ nó trong mã của mình (chúng tôi không thể thấy bạn đang làm gì trong useFirebase()), nhưng có vẻ như bạn đang sử dụng kết quả của initializeApp(), cái trả về một thể hiện của App. Điều đó sẽ không giúp bạn làm việc với loại Timestamp.

Thông thường, firebase là kết quả của một lệnh import như thế này, như được trình bày trong tài liệu, điều này cho bạn quyền truy cập vào namespace firebase:

import * as firebase from "firebase/app"
import "firbase/firestore"

Sau đó bạn có thể làm việc với Timestamp bằng cách sử dụng namespace firebase đó:

firebase.firestore.Timestamp.fromDate(...)

Câu trả lời #2

Đối với firebase v9, nó là: import { Timestamp } from 'firebase/firestore';

Bài viết liên quan