我想在Google App Engine项目中作为附加数据库访问Firestore的实时数据库。
从Google App Engine后端写入Firestore的最佳方法是什么?使用Firestore Rest API好吗?还是有更好的方法?
如何在两个项目之间进行身份验证?因为据我了解,Google App Engine项目和Firestore项目是两个不同的项目。
我想在Google App Engine项目中作为附加数据库访问Firestore的实时数据库。
从Google App Engine后端写入Firestore的最佳方法是什么?使用Firestore Rest API好吗?还是有更好的方法?
如何在两个项目之间进行身份验证?因为据我了解,Google App Engine项目和Firestore项目是两个不同的项目。
'fs_visits.py -- Cloud Firestore sample Python snippet for web visit registry'
from __future__ import print_function
from datetime import datetime
from google.cloud import firestore
def store_visit(timestamp):
visits = fs_client.collection('visitX')
visits.add({'timestamp': timestamp})
def fetch_visits(limit):
visits = fs_client.collection('visitX')
return visits.order_by(u'timestamp',
direction=firestore.Query.DESCENDING).limit(limit).stream()
TOP = 10 # limit to 10 results
fs_client = firestore.Client() # create Cloud Firestore client
if __name__ == '__main__':
print('** Adding another visit')
store_visit(datetime.now()) # store a "visit" object
print('** Last %d visits' % TOP)
times = fetch_visits(TOP) # fetch most recent "visits"
for obj in times:
print('-', obj.to_dict()['timestamp'])
我运行它时得到的样本输出如下:
$ python fs-snip.py
** Adding another visit
** Last 10 visits
- 2020-03-23 09:14:09.742027+00:00
- 2020-03-11 01:06:47.103570+00:00
- 2020-03-11 01:03:29.487141+00:00
- 2020-03-11 01:03:16.583822+00:00
- 2020-03-11 01:02:35.844559+00:00
- 2020-03-11 00:59:51.939175+00:00
- 2020-03-11 00:59:39.874525+00:00
- 2020-03-11 00:58:51.127166+00:00
- 2020-03-11 00:58:34.768755+00:00
- 2020-03-11 00:58:21.952063+00:00
虽然它没有解释太多,但如果您能理解这段代码,您将对其工作原理有所了解。这里是官方的快速入门教程和一个后续的深入学习教程,比我的小代码片段详细得多。
顺便说一句,我尝试使用REST API来做同样的事情,但遇到了一些权限问题(403)。也许我以后会再次尝试。(只尝试了15-20分钟,任务太难了。)
就项目而言,Google Cloud(平台)项目是应用程序及其资源的单一逻辑实体。目前,每个项目可以拥有一个App Engine应用程序和一个NoSQL数据库(Cloud Datastore [现在称为Datastore模式下的Cloud Firestore]或Cloud Firestore [称为本机模式下的Cloud Firestore]...由您选择)。这意味着它们都可以在同一个项目中,因此您不必担心跨项目权限问题。