Library ที่จำเป็นต้องติดตั้ง
- pyrebase เปิด command แล้วพิมพ์ตามนี้
โค้ด: เลือกทั้งหมด
pip install pyrebase
การ Upload รูปภาพลงใน Firebase(Cloud Storage)
จริงๆ upload ไฟล์ประภทอื่นก็ได้ แต่ในบทความจะ upload รูปภาพ
- ตั้งค่า Project ให้ Firebase เชื่อมกับ ไฟล์ Python3
- กดที่ icon "ฟันเฟือง" >> Project settings
- กดที่ General
- เลื่อนลงไปที่ Your app (ต้องสร้างก่อนถึงจะขึ้นแบบนี้ ตอนสร้างเลือก web app นะ)
- กดเลือก แอพ(ชื่อที่ตั้งไว้) >> เลือก Config >> copy โค้ด
- กดเลือก Service accounts >> Firebase Admin SDK >> Python >> Generrate new private key
- การกำหนดสิทธิ์การเข้าถึง
- เข้าไปที่ Cloud Storage >> Rules >> Edit rules >> แล้ว แก้โค้ด ใส่ตามนี้เลย
ตอนนี้เราจะยังไม่ได้ไปยุ่งเกี่ยวกับ Authentication เราเลยยังไม่ใส่เงื่อนไข (ปรับเป็น true ไปก่อน)
โค้ด: เลือกทั้งหมด
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write; } } }
- เข้าไปที่ Cloud Storage >> Rules >> Edit rules >> แล้ว แก้โค้ด ใส่ตามนี้เลย
- สร้างไฟล์ python มา 1 ไฟล์ เอาโค้ดที่ copy มา โค้ดจะประมาณนี้ (ถ้าไม่มี databaseURL ให้ไปเปิดใช้ Realtime database ก่อนนะ)
ใน dictionary config ต้องใส่ single code('') หรือไม่ก็ double code("") ให้ key ด้วย
โค้ด: เลือกทั้งหมด
import pyrebase config = { 'apiKey': "AIzaSyA8atA1nkRwOzpxsl1q-JLP-8txwFKeHgs", 'authDomain': "test-83205.firebaseapp.com", 'projectId': "test-83205", 'databaseURL': "https://test-83205-default-rtdb.asia-southeast1.firebasedatabase.app", 'storageBucket': "test-83205.appspot.com", 'messagingSenderId': "183552974163", 'appId': "1:183552974163:web:a4ef0620099b9a6c8f95a6", 'serviceAccount': 'your_key.json', ## add this line 'measurementId': "${config.measurementId}" ## delete this ine } firebase_storage = pyrebase.initialize_app(config) storage = firebase_storage.storage()
measurementId: "${config.measurementId}" จากที่ copy มาให้ลบบรรทัดนี้ออก เพราะไม่ใช้
'serviceAccount': 'your_key.json' เอาชื่อไฟล์ private key ที่download มาใส่แทนที่ 'your_key.json'
เอาไฟล์ private key มาไว้ที่ folder เดียวกับไฟล์ python ที่จะเชื่อมด้วย
- โค้ดหลังจากที่ เปลี่ยนชื่อ private key และ ลบบรรทัด measurementId แล้ว
โค้ด: เลือกทั้งหมด
import pyrebase config = { 'apiKey': "AIzaSyA8atA1nkRwOzpxsl1q-JLP-8txwFKeHgs", 'authDomain': "test-83205.firebaseapp.com", 'databaseURL': "https://test-83205-default-rtdb.asia-southeast1.firebasedatabase.app", 'projectId': "test-83205", 'storageBucket': "test-83205.appspot.com", 'messagingSenderId': "183552974163", 'appId': "1:183552974163:web:68b42db6a7e243748f95a6", 'serviceAccount': 'test-83205-firebase-adminsdk-i50tj-804216b64f.json' } firebase_storage = pyrebase.initialize_app(config) storage = firebase_storage.storage()
- โค้ด การ upload รูปภาพ ด้วยการเขียนโปรแกรมภาษา Python3
ภายใน Cloud Storage ภาพชื่อ jerry.jpg เก็บใน Folder ชื่อ image <-- argument ใน method child()
โค้ด: เลือกทั้งหมด
storage.child('image/jerry.jpg').put('jerry.jpg')
path ใน ระบบปฏิบัติการของเรา คือ 'jerry.jpg' (เอาไว้ใน folder เดียวกับไฟล์ python) <-- argument ใน method put()
สรุป
อ้างอิง
https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/3921-what-is-firebase-backend.html
https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2261-sdk-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html
https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2194-web-services-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html