鉴于:
void AFunction()
{
foreach(AClass i in AClassCollection)
{
listOfLambdaFunctions.AddLast( () => { PrintLine(i.name); } );
}
}
void Main()
{
AFunction();
foreach( var i in listOfLambdaFunctions)
i();
}
Run Code Online (Sandbox Code Playgroud)
现在你会认为这样做会对等:
void Main()
{
foreach(AClass i in AClassCollection)
PrintLine(i.name);
}
Run Code Online (Sandbox Code Playgroud)
但它没有,它将做的是每次打印AClassCollection中最后一项的名称!所以基本上每个lambda函数都使用相同的项目.我怀疑"当lambda被创建时"或"当它使用其中使用的外部变量的快照时"可能会有一些延迟,或者基本上只是持有'对局部变量的引用'i'
所以我这样做了:
string astr = "a string";
AFunc fnc = () => { System.Diagnostics.Debug.WriteLine(astr); };
astr = "changed";
fnc();
Run Code Online (Sandbox Code Playgroud)
而惊喜,惊喜,它输出"改变了!"
我正在使用XNA 3.1(无论是什么c#)
到底是怎么回事?lambda函数以某种方式存储变量或其他东西的"引用"吗?反正这个问题呢?
我正在尝试为我的 http Cloud Functions启用cors。但是,即使按照这个使用 cors 的示例,在尝试时fetch,它仍然给我错误:
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
这是我的云功能:
const functions = require('firebase-functions');
const cors = require('cors')({origin: true});
exports.foo = functions.https.onRequest((req, res) => {
return cors(req, res, () => {
let format = req.query.format;
if (!format) {
format = req.body.format;
}
//do stuff
});
});
Run Code Online (Sandbox Code Playgroud)
这是我获取的方式:
fetch("https://us-central1-my-database.cloudfunctions.net/foo", {
method: "POST",
body: JSON.stringify(data),
headers: {
"Content-Type": "application/json"
}
}).then((res) => {
// ...
}).catch((err) => {
// ...
});
Run Code Online (Sandbox Code Playgroud)
为什么 cors 不起作用,我该如何解决?
我最近遇到了UI问题.我打开了一个新的2D项目并使用带有Image组件的GameObject创建了一个画布.然后我通过右键单击添加了一个精灵Assets > Create > Sprites > Circle.这为我的Assets文件夹添加了一个圆形精灵.
圆形精灵被导入为纹理类型的精灵.
其他形状也会出现此问题,例如三角形.
我正在使用Unity 5.6.0b9 Personal.构建目标是PC,Mac,Linux Standalone.
我可能错过了很简单的事情.任何帮助表示赞赏!
我一直在寻找一种方法来使用身份验证与Firebase的新Cloud Firestore.我知道这是可能的,但在文档和其他地方都没有好的指南.
有人可以解释一下如何在get()从Cloud Firestore获取数据时提供身份验证UID 吗?
这是我的安全规则:
service cloud.firestore {
match /users/{userID} {
allow read, write: if request.auth.uid == userID;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码:
var db = firebase.firestore();
var docRef = db.collection("users").doc(uid); //lets say "uid" var is already defined
docRef.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
Run Code Online (Sandbox Code Playgroud)
我的数据库结构只是root用户的"用户"集合,然后是每个用户的文档(以UID命名).我想用用户的UID获取文档.
当然,由于安全规则,这会产生错误"缺少权限或权限不足",这是预期的.
这个问题可能看起来很简单,但是如果有人能找到一些好的文档,那就太好了!
javascript authentication firebase firebase-authentication google-cloud-firestore
《皇室战争》是一款在线、实时、多人游戏。因此,它必须有一个数据库来存储所有信息。我想知道您是否可以以及如何查询数据库/api。
我希望能够获得玩家信息。我知道这是可能的,因为Stats Royale成功地做到了这一点。他们在自己的服务器上进行计算,所以我在他们的客户端代码中没有发现任何东西。
提前致谢!