Tìm kiếm trang web

reactjs - Thuộc tính 'accessToken' không tồn tại trên kiểu 'User' && firebase không được định nghĩa


Tôi đang sử dụng TypeScript trong ứng dụng React của mình và nhận được lỗi "Property 'accessToken' does not exist on type 'User'" khi lấy accessToken của người dùng

Hàm xử lý của tôi trong thành phần:

const handleRegister = (email: string, password: string) => {
  const auth = getAuth();

  createUserWithEmailAndPassword(auth, email, password)
    .then(({user}) => {
      dispatch(setUser({
        email: user.email,
        token: user.accessToken,
        id: user.uid
      }));
    });
}

sau khi tìm kiếm một giải pháp cho vấn đề này, tôi đã làm điều này

token: (user as unknown as OAuthCredential).accessToken,

và IDE tự động thêm các thư viện sau

import firebase from "firebase/compat";
import OAuthCredential = firebase.auth.OAuthCredential;

Nhưng sau đó tôi nhận được một lỗi trong console "Uncaught ReferenceError: firebase is not defined". Tôi cảm thấy ngớ ngẩn nhưng tôi không hiểu làm thế nào để giải quyết nó

Câu trả lời #1

làm điều này xem bạn nhận được kết quả gì, tôi nghĩ bạn cần result.user.accessToken nhưng tôi không chắc

signInWithEmailAndPassword(auth, email, password)
   .then((result: any) => {
     // Signed in 
     console.log(result)
     // ...
})

Câu trả lời #2

Tôi chưa kiểm tra điều này, nhưng bạn có thể sử dụng một cái gì đó giống như dưới đây.

const handleRegister = (email: string, password: string) => {
  const auth = getAuth();

  createUserWithEmailAndPassword(auth, email, password)
    .then(({user}) => {
     user.getIdToken().then(function(idToken) {
       // Send token to your backend via HTTPS
        dispatch(setUser({
          email: user.email,
          token: idToken,
          id: user.uid
        }));
       // ...
     }).catch(function(error) {
       // Handle error
     });
      
    });
}