我正在尝试在管理面板中创建一个功能(使用 React 和 Antd 框架)。
我目前的 csv 文件中有大约 15000 ~ 20000 用户信息。此 csv 文件会定期更新。由于我有一个相当大的列表,我正在考虑创建一个上传功能,管理员可以上传定期更新的 csv 文件,以便将其转换为 JSON,并且仅将选定的字段存储到 firestore。这意味着每次我上传新文件时,所有 15000~20000 (26mb) 数据记录都会被覆盖。 创建这种工作流程效率低吗?这些数据有可能会变得更大,因此我无法手动更新它们。
有人可以给我一些关于如何处理这种情况的建议吗?
最佳答案
浏览器允许上传 2 到 4(有些甚至更大)(GB) 的最大文件大小,因此您的文件不会很大。 我以前曾经处理过这样的任务,可以说 antd table 很容易做到这一点。只是过滤器工作得有点慢。
这是我做的一个例子
import React, {useState} from 'react';
import ReactDOM from 'react-dom';
const columns = [
/** Here was my columns */
]
const App = () => {
const [data, setData] = useState([]);
const handleUpload = (e) => {
const file = e.target.files[0];
const reader = new FileReader();
reader.onload = event => {
try {
const result = event.target.result;
setData(JSON.parse(result));
} catch (e) {
console.log(e)
}
}
reader.readAsText(file);
}
return (
<>
<input type="file" onChange={handleUpload}/>
<Table
columns={columns}
dataSource={data}
/>
</>
)
}
ReactDOM.render(
<App/>,
document.getElementById('root')
);
很高兴我的回答对您有帮助:)问候!
关于firebase - 上传 csv 文件以触发 firestore 集合更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68326811/