每当我必须使用gcloudsdk部署新的 python 函数时,我都会收到此消息
允许未经身份验证的新函数 [function-name] 调用?
(是/否)?
警告:使用受限访问 IAM 策略创建的函数。要启用未经授权的访问,请考虑
“gcloud alpha 函数 add-iam-policy-binding function-name --region=europe-west1 --member=allUsers --role=roles/cloudfunctions.invoker”
是否有任何标志可以添加到命令中以使其NO在部署时成为一个?
这是我用来部署一个函数的示例命令:
gcloud functions deploy function-name --region=europe-west1 --entry-point function-entry-point --trigger-resource "projects/my-project/databases/(default)/documents/user_ids/{user_id}" --trigger-event providers/cloud.firestore/eventTypes/document.create --runtime python37 --timeout 60 --project my-project
Run Code Online (Sandbox Code Playgroud) python google-cloud-platform gcloud gcloud-python google-cloud-functions
我想使用Firebase功能和Purchases.products验证我的应用中的购买:get 但我不知道如何使用链接中的授权范围或如何在Firebase功能中构建请求.这是我到目前为止:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const google = require("googleapis");
const publisher = google.androidpublisher('v2');
admin.initializeApp(functions.config().firebase);
exports.validatePurchases = functions.database
.ref('/purchases/{uId}/{orderId}')
.onWrite((event) => {
const purchase = event.data.val();
const token = purchase.token;
const packageName = purchase.package_name;
const sku = purchase.sku;
const signature = purchase.signature;
const uri = "https://www.googleapis.com/androidpublisher/v2/applications/" + packageName + "/purchases/products/" + sku + "/tokens/" + token;
return TODO;
});
Run Code Online (Sandbox Code Playgroud)
我主要设置了所有内容,但我的JavaScript知识非常有限,并且不知道如何构建Request并获取Firebase函数中的结果
in-app-purchase node.js firebase google-play-developer-api google-cloud-functions
我正在 python 中通过网络抓取创建文档并将其上传到 Firestore。为此,我将它们添加到字典中,并从 python 中的 for 循环逐个上传它们(理想情况下最好立即上传集合,但这似乎不是一个选择)。我想使用批次,但是每批次有 500 个限制,而我需要执行超过 100,000 次操作。这些操作只是set()操作和几个是否有update()
函数可以知道批处理的当前大小以便我可以重新初始化它?在 python 中使用批处理进行 500 多个操作的最佳方法是什么?
我正在从更新 Cloud Firestore 触发器读取数据。这event是一个字典,包含键中的数据['value']['fields']。但是,每个键都包含一个嵌套字典,其中包含像'integerValue','booleanValue'或 之类的键'stringValue',其中 的值integerValue实际上是一个字符串。有没有一种方法可以删除“类型指针”?
我怎样才能转换这个:
{
'fields': {
'count': {
'integerValue': '0'
},
'verified': {
'booleanValue': False
},
'user': {
'stringValue': 'Matt'
}
}
}
Run Code Online (Sandbox Code Playgroud)
对此:
{
'count': 0,
'verified': False,
'user': 'Matt',
}
Run Code Online (Sandbox Code Playgroud) python python-3.x google-cloud-platform google-cloud-firestore
我正在寻找一款可以提供非常基本的骨架以使用Google App Engine运行python脚本的优秀撒玛利亚人。我已经阅读了文档,检查了相关的SO问题,但是我对WebApp格式迷失了。我要做的就是每周运行6次运行一个接受参数的python脚本或几个python脚本,以监听网站中的更改,然后将其发布到Firestore。
我了解cron格式和大多数配置文件。我被困在如何为项目安排文件以及url的工作方式。
我要问的是一个关于如何有效运行python脚本的非常基本的示例。 到目前为止,这是我找到的最好的资源,但是我无法真正理解该站点中此代码的运行情况:
`#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
import feedparser
import time
class Item(db.Model):
title = db.StringProperty(required=False)
link = db.StringProperty(required=False)
date = db.StringProperty(required=False) class Scrawler(webapp.RequestHandler):
def get(self):
self.read_feed()
self.response.out.write(self.print_items())
def read_feed(self):
feeds = feedparser.parse( "http://www.techrepublic.com/search?t=14&o=1&mode=rss" )
for feed in feeds[ "items" ]:
query = Item.gql("WHERE link = :1", feed[ "link" ])
if(query.count() == 0):
item = Item()
item.title …Run Code Online (Sandbox Code Playgroud) cron google-app-engine python-3.x google-cloud-platform google-cloud-firestore
我需要有关多/单选择的帮助。在这里找到了我要找的东西,因为它很简单。我正在使用一个GridLayoutManager我的适配器中有超过 90 个项目,一个CardView带有 aTextView和 an ImageView,同时使用帖子中描述的过程。
当我选择一个或多个项目时,当我向下滚动时,其他项目“似乎”被选中,因为背景会复制,但它们未被选中。尝试将setOnClickListener, 放入onBindViewHolderMyViewHolder 类中,并且在它们两个类中我都得到相同的行为。向下滚动时,似乎选择了其他项目。使用notifyItemChanged(position)并notifyDataSetChanged()在适配器中,但背景根本没有改变,尽管setSelected工作正常。我setHasFixedSize(true)也在 RecyclerView 设置中使用。
在 onBindViewHolder
@Override
public void onBindViewHolder(MyViewHolder myViewHolder, final int position) {
PatternImages currentPattern = patternImages.get(position);
myViewHolder.setData(currentPattern, position);
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSelected(!v.isSelected());
if (v.isSelected()) {
v.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimaryHighLight));
} else {
v.setBackgroundColor(Color.WHITE);
}
notifyItemChanged(position);
}
});
}
Run Code Online (Sandbox Code Playgroud)
模型
public class …Run Code Online (Sandbox Code Playgroud) android android-adapter gridlayoutmanager android-recyclerview