在Firebase中,UID(User ID)是Firebase Authentication为每个注册用户自动生成的唯一标识符。遍历UID通常是指在Firebase Realtime Database或Firestore中查询和访问所有用户的UID。
const admin = require('firebase-admin');
// 初始化Firebase Admin SDK
admin.initializeApp({
credential: admin.credential.applicationDefault(),
databaseURL: 'YOUR_DATABASE_URL'
});
// 获取所有用户
async function listAllUsers(nextPageToken) {
try {
// 列出最多1000个用户
const listUsersResult = await admin.auth().listUsers(1000, nextPageToken);
listUsersResult.users.forEach((userRecord) => {
console.log('UID:', userRecord.uid);
console.log('Email:', userRecord.email);
});
if (listUsersResult.pageToken) {
// 如果有更多用户,继续获取
await listAllUsers(listUsersResult.pageToken);
}
} catch (error) {
console.log('Error listing users:', error);
}
}
// 调用函数开始遍历
listAllUsers();
在前端直接获取所有用户的UID是不安全的,但如果你已经存储了用户数据在Realtime Database或Firestore中,可以这样查询:
import { getDatabase, ref, get } from "firebase/database";
const db = getDatabase();
// 假设你在数据库中有一个'users'节点存储了所有用户数据
function getAllUserUIDs() {
const usersRef = ref(db, 'users');
get(usersRef).then((snapshot) => {
if (snapshot.exists()) {
const users = snapshot.val();
Object.keys(users).forEach((uid) => {
console.log('UID:', uid);
});
} else {
console.log("No users found");
}
}).catch((error) => {
console.error("Error getting users:", error);
});
}
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.processAllUsers = functions.pubsub.schedule('every 24 hours').onRun(async (context) => {
try {
let allUsers = [];
// 递归函数获取所有用户
async function listAllUsers(pageToken) {
const listUsersResult = await admin.auth().listUsers(1000, pageToken);
listUsersResult.users.forEach(user => allUsers.push(user.uid));
if (listUsersResult.pageToken) {
return listAllUsers(listUsersResult.pageToken);
}
}
await listAllUsers();
console.log(`Found ${allUsers.length} users`);
// 在这里处理所有用户的UID
// 例如: 更新数据库中的某些字段
return null;
} catch (error) {
console.error('Error:', error);
return null;
}
});
问题1:获取用户列表时返回空或部分用户
问题2:权限不足无法获取用户列表
问题3:性能问题
没有搜到相关的文章