gpt4 book ai didi

javascript - 无法使用 Parse JS SDK 更新 Parse 对象

转载 作者:行者123 更新时间:2023-12-03 06:23:34 24 4
gpt4 key购买 nike

我正在测试一些基本的东西,这很令人困惑。

解析 JavaScript SDK v1.9.0:

<script src="parse.min.js"></script>
<script>
Parse.initialize("KEY");
Parse.serverURL = 'URL'
</script>

连接到 Facebook:

window.fbAsyncInit = function() {
Parse.FacebookUtils.init({
appId : 'ID',
xfbml : true,
version : 'v2.7'
});
};

(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

获取当前用户:

    var user = Parse.User.current();

到目前为止一切都很好。我可以从用户那里读取并显示。

当我尝试更新用户时:

user.set("name","test");
user.save();

范围错误:超出最大调用堆栈大小。

我检查了递归。这仅被调用一次。不知道为什么会抛出这个错误。

编辑:修复语法。错误仍然存​​在。

编辑2:如果我尝试更新 currentUser 或者将另一个对象的指针设置为 currentUser,我会得到相同的错误。示例:

下面创建一个新的 InterestObject 就可以了,除非我将用户列设置为指向 currentUser 的指针。然后我得到同样的错误。

var currentUser = Parse.User.current();
var InterestObject = Parse.Object.extend("CadetsInterest");
var intObj = new InterestObject();
intObj.save({
user: currentUser,
cadets: [checkCadets state],
cadets2: [checkCadets2 state],
cwg: [checkCWG state],
question: [txtQuestion stringValue]
}).then(function(object) {
[viewSuccess setHidden: NO];
[viewInterest setHidden: YES];
});

最佳答案

我认为你的代码中的语法应该是:

user.set("name","test");

在你的例子中你写道:

user.set("name"),"test"

更新

从您提供的代码中,我没有看到任何用于使用 Facebook 登录的登录调用。我做了一些业余项目并设法做到了。我所做的如下:

  1. 转到https://developers.facebook.com
  2. 创建 Web 类型的 Facebook 应用
  3. 在您的 Facebook 应用程序 URL 中输入您的服务器 URL(在我的例子中,我在本地主机上执行此操作,因此我将托管应用程序的 URL 放在其中)
  4. 转到您的解析应用程序并写入以下代码:

<!doctype html>

<head>
<meta charset="utf-8">

<title>My Parse App</title>
<meta name="description" content="My Parse App">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/styles.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://www.parsecdn.com/js/parse-latest.js"></script>
</head>

<body>

<div id="main">
<h1>You're ready to use Parse!</h1>

<p>Read the documentation and start building your JavaScript app:</p>

<ul>
<li><a href="https://www.parse.com/docs/js_guide">Parse JavaScript Guide</a>
</li>
<li><a href="https://www.parse.com/docs/js">Parse JavaScript API Documentation</a>
</li>
</ul>

<div style="display:none" class="error">
Looks like there was a problem saving the test object. Make sure you've set your application ID and javascript key correctly in the call to <code>Parse.initialize</code> in this file.
</div>

<div style="display:none" class="success">
<p>We've also just created your first object using the following code:</p>

<code>
var TestObject = Parse.Object.extend("TestObject");<br/>
var testObject = new TestObject();<br/>
testObject.save({foo: "bar"});
</code>
</div>
</div>

<script type="text/javascript">
Parse.initialize("{PARSE_APP_ID}");
Parse.serverURL = '{PARSE_SERVER_URL}'

window.fbAsyncInit = function() {
Parse.FacebookUtils.init({
appId: '{YOUR_FB_APP_ID}',
xfbml: true,
version: 'v2.7'
});
};

(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));


setTimeout(function() {
Parse.FacebookUtils.logIn(null, {
success: function(user) {

user.set("name", "test");
user.save();

},
error: function(user, error) {
alert("User cancelled the Facebook login or did not fully authorize.");
}
});
}, 2000);
</script>
</body>

</html>

在这段代码中,我执行了与您完全相同的步骤,但随后我调用了Parse.FacebookUtils.logIn。我在 2 秒后执行此操作只是为了确保 Parse.FacebookUtils.init 已执行(最好在回调内执行,但出于测试目的,我这样做了)。然后,在我使用我的 Facebook 帐户登录后,我将用户放入成功 block 中,更新他的姓名并再次保存。然后在我的解析仪表板中我看到以下内容:

enter image description here

在执行此操作之前,还请确保您当前的用户已登录,因为您可能有一个事件 session 。为了做到这一点,只需调用

FB.User.logOut();

关于javascript - 无法使用 Parse JS SDK 更新 Parse 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38753602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com