Firebase 인증 사용자 UID를 가져올 수 있는 방법이 있습니까?
노드를 통해 Firebase에서 인증 사용자 UID를 가져오려고 합니다.JS 또는 Javascript API입니다.제가 무엇을 찾고 있는지 알 수 있도록 스크린샷을 첨부했습니다.
호프, 당신들이 날 도와줘요
인증 데이터는 Firebase 3에서 비동기식입니다.따라서 이벤트를 기다린 후 현재 로그인한 사용자의 UID에 액세스할 수 있습니다.당신은 다른 사람들을 구할 수 없을 것입니다.앱이 열리면 호출됩니다.
이벤트가 아직 실행되지 않았는지 확인하기 위해 추가 로직을 방지하기 위해 원하는 경우 이벤트를 수신한 후에만 앱을 렌더링할 수 있습니다.
또한 여기서 경로 변경을 트리거할 수 있습니다.user
이것은 경로를 로드하기 전에 확인과 결합하여 올바른 사용자만 publicOnly 또는 privateOnly 페이지를 볼 수 있도록 하는 확실한 방법입니다.
firebase.auth().onAuthStateChanged((user) => {
if (user) {
// User logged in already or has just logged in.
console.log(user.uid);
} else {
// User not logged in or has just logged out.
}
});
앱 내에서 이 사용자 개체를 저장하거나 현재 사용자를 언제든지 가져올 수 있습니다.firebase.auth().currentUser
.
https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onAuthStateChanged
사용자가 로그인하면 console.log가 출력됩니다.
if (firebase.auth().currentUser !== null)
console.log("user id: " + firebase.auth().currentUser.uid);
서버 측에서는 firebase admin sdk를 사용하여 모든 사용자 정보를 가져올 수 있습니다.
const admin = require('firebase-admin')
var serviceAccount = require("./serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://yourprojecturl.firebaseio.com",
});
admin.auth().listUsers().then(data=>{
console.log(data.users)
})
이것은 오래된 질문이지만 받아들여진 답변이 다른 질문에 대한 정답을 제공한다고 믿습니다. 그리고 디판잔 판자의 답변이 원래 질문에 답하는 것처럼 보이지만, 원래 포스터는 나중에 다른 질문으로 답변을 통해 명확하게 설명했습니다.
기본적으로 파이어베이스의 UID에서 토큰을 생성해야 합니다.auth().사용자 정의 만들기다음 함수 firebase를 사용하여 firebase에 사용자를 로그인하는 토큰(UID)입니다.auth().signWithCustom토큰(토큰).
원래 질문의 의도가 명확하게 밝혀졌기 때문에createCustomToken
그리고.signInWithCustomToken
이 질문은 Firebase Admin SDK 또는 Firebase Functions(서버 측 모두)를 사용하여 전자 메일 주소와 암호를 사용하지 않고 사용자 이름과 암호 조합을 기반으로 사용자 지정 인증을 제공하는 것에 대한 질문이라고 생각합니다.
또한 아래 코드 예제에서 사용자의 Firebase를 참조하지 않는 "uid"에 대한 혼동이 있다고 생각합니다.uid
히려오▁but.uid
createCustom 문서에 표시됨토큰, 다음을 표시합니다.
admin
.auth()
.createCustomToken(uid)
.then((customToken) => {
...
에, 우경이는,uid
에 있는 createCustomToken
호이아닙니다가출▁thebase가 아닙니다.uid
필드(아직 알 수 없음), 따라서 이 질문을 하는 코더에게 일련의 답답한 답변을 제공합니다.
에신대,는,uid
여기서는 이 사용자 지정 인증자가 지원하는 임의 로그인 기반을 나타냅니다. 예를 들어, 전자 메일 주소, 사회 보장 번호, 직원 번호 등이 될 수 있습니다.
설명서 페이지에서 해당 짧은 코드 블록 위를 보면 이 경우에 해당합니다.uid
다음과 같이 정의되었습니다.
const uid = 'some-uid';
사용자 지정 인증자가 원하는 모든 것을 나타낼 수 있지만 이 경우 사용자 이름/사용자 ID를 암호와 쌍으로 구성한다고 가정합니다.그래서 그것은 가치를 가질 수 있습니다.'admin'
또는'appurist'
또는'123456'
아니면 다른 것.
답변: 이 경우에는, 이 특별한 경우에 해당합니다.uid
(이름이 잘못 지정됨)는 로그인 양식의 사용자 입력에서 온 것일 수 있으므로 로그인 전에 사용할 수 있습니다.로그인하려는 사용자를 알고 있는 경우 일부 관리 SDK 코드가 모든 사용자에게 일치하는 필드(새 사용자 등록에 저장됨)를 검색합니다.
이 모든 것은 파이어베이스가 지원하지 않는다는 사실을 피하기 위한 것으로 보입니다.signInWithUsernameAndPassword
("ID/사용자 이름"으로 표시됨) "사용자 이름"으로 표시됩니다.signInWithUidAndPassword
(Firebase UID).따라서 관리 SDK 해결 방법 또는 Firebase 기능이 필요하며 Firebase의 서버리스 측면이 심각하게 약화되었습니다.
커스텀 인증 토큰을 주제로 한 6분짜리 비디오를 위해, 저는 여기서 Jen Person의 Firebase용 YouTube 비디오를 강력하게 추천합니다: Admin SDK for Node.js - Firecasts.
목록인 UID를 수 있는 가 없습니다. Firebase는 Auth User(s) UID입니다.
그러나 Firebase 데이터베이스 내에서 사용자 UID를 사용자 수준으로 유지할 수 있습니다.아래와 같이,
"users": {
"user-1": {
"uid": "abcd..",
....
},
"user-2": {
"uid": "abcd..",
....
},
"user-3": {
"uid": "abcd..",
....
}
}
그러면 당신은 언제든지 쿼리를 만들고 UID가 필요할 때 검색할 수 있습니다.
이 간단한 해결책이 도움이 되길 바랍니다!
에서 Firebase 사용Firebase.getAuth()
:
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
var authData = ref.getAuth();
if (authData) {
console.log("Authenticated user with uid:", authData.uid);
}
출처:
언급URL : https://stackoverflow.com/questions/38352772/is-there-any-way-to-get-firebase-auth-user-uid
'programing' 카테고리의 다른 글
C의 for(;;) 루프에서 여러 변수를 선언하려면 어떻게 해야 합니까? (0) | 2023.06.18 |
---|---|
WordPress에서 작성자 기반을 제거하는 방법 (0) | 2023.06.18 |
Firebase에서 사용자 지정 하위 도메인을 만들려면 어떻게 해야 합니까? (0) | 2023.06.18 |
Wordpress Woocommerce 사용자 지정 배송 필드(AJAX)에서 값 가져오기 (0) | 2023.06.13 |
판다의 열 순서를 _csv 방법으로 보존 (0) | 2023.06.13 |