我正在学习firebase,Firebase存储存在一些问题:
答案 0 :(得分:2)
问题1:
每个文件5 TB,当然也受当前计划的限制。
https://stackoverflow.com/a/37971182/2254886 https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload
以下是一种限制它的方法: https://stackoverflow.com/a/38427527/2254886
问题2:
是的,您可以存储和检索存储桶中的数据。您可以以编程方式轻松获取URL(公共或私人,您的选择)。
问题3 (嗯,这是很多问题):
https://firebase.google.com/pricing/
您可以使用该计算器查看您需要的计划,具体取决于您的估算用量。此外,您可以在控制台中查看所有分析,以包括用户数。您可以在该控制台中找到大量信息。
你可以看到,你所有问题的答案都已经在SO上了。我建议您阅读https://firebase.google.com上的文档,然后转到Firebase YouTube频道(https://www.youtube.com/user/Firebase)。你可以在那里学到你需要知道的一切。 Firebase是一款非常强大的应用开发工具。
答案 1 :(得分:0)
转到 Firebase 控制台 -> 存储 -> 允许测试模式(如果你想读写) 创建一个反应应用
创建文件 firebase/firebase.utils.js
import firebase from 'firebase/app'
import 'firebase/storage'
// copy config from firebase web app project
const config={
apiKey: "your api key",
authDomain: "auth domain",
projectId: "web app name",
storageBucket: "storage bucket",
messagingSenderId: "sender ID",
appId: "app id",
measurementId: "measure id"
};
export const app=firebase.initializeApp(config)
export default firebase;
转到 App.js
import {app} from './firebase/firebase.utils.js'
function App() {
const onChange = (e) => {
const file = e.target.files[0];
const storageRef = app.storage().ref()
const fileRef = storageRef.child(file.name)
fileRef.put(file).then(() => {
console.log("Uploaded a file")
})
}
return (
<input type="file" onChange={onChange}/>
);
}
export default App;
在这里,如果您想下载 firebase 文件的链接,则将以下更改应用于 onChange
注意-> 使用allow read 允许对firebase 存储的读取访问:如果为真;
const onChange = (e) => {
const file = e.target.files[0];
const storageRef = app.storage().ref()
const fileRef = storageRef.child(file.name)
fileRef.put(file).then(() => {
fileRef.getDownloadURL().then(function (url) {
console.log(url);
});
console.log("Uploaded a file")
})
}
规则
如果您想限制 Firebase 的上传大小,请转到存储下的规则并使用以下规则:
//此规则将允许上传最大 10mb 的任何文件
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read: if true;
allow write: if request.resource.size < 10 * 1024 * 1024;
}
}
}
如果您只想允许图像
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read: if true;
allow write: if request.resource.size < 10 * 1024 * 1024
&& request.resource.contentType.matches('image/.*');
}
}
}
如果你只想写访问 删除允许读取:如果为真;