既然解析服务器是开源的,那么它背后的社区已经添加了许多很酷的功能.在原始版本(parse.com)中,我们能够使用Facebook和Twitter登录.现在,我们有Google,LinkedIn,GitHub等.
在iOS上,有2个库(PFFacebookUtils和PFTwitterUtils)允许我们在我们的应用程序中轻松使用Facebook和Twitter身份验证并创建PFUser对象.
我想允许我的用户使用他们的Google帐户登录.由于没有PFGoogleUtils库,我无法弄清楚如何使用
+ (BFTask<__kindof PFUser *> *)logInWithAuthTypeInBackground:(NSString *)authType authData:(NSDictionary<NSString *, NSString *> *)authData
Run Code Online (Sandbox Code Playgroud)
PFUser的方法.
我试着看看PFTwitterUtils和PFFacebookUtils,但没有运气.我甚至尝试使用Twitter和Facebook登录而不使用PFTwitterUtils和PFFacebookUtils,但我不知道这是不是一个好主意.
那么,这里有没有人成功地将Google身份验证与他们在iOS上的Parse应用程序集成?
谢谢
我正在努力在Heroku上放置一个Parse Server.我正在使用这个应用程序:
https://github.com/ParsePlatform/parse-server-example
使用本指南上传到heroku:
https://devcenter.heroku.com/articles/getting-started-with-nodejs
我已经更新了解析服务器代码中的数据库和服务器URL,并且所有内容都已正确上传和部署.但是,当我尝试使用cURL测试服务器时,如本指南所示:
https://github.com/ParsePlatform/parse-server
我收到以下错误:
{"error":"Unexpected token '"}
Run Code Online (Sandbox Code Playgroud)
我复制并粘贴了cURL命令,为我的url修改了:
curl -X POST -H "X-Parse-Application-Id: myAppId" -H "Content-Type: application/json" -d '{"score":1337,"playerName":"Sean Plott","cheatMode":false}' http://my-app-name.herokuapp.com/parse/classes/GameScore
Run Code Online (Sandbox Code Playgroud)
Heroku日志显示请求进来(所以我知道它到了正确的地方)但没有错误.我正在从Windows 7部署,如果这很重要的话.这是我对heroku和解析服务器的第一次体验,所以我有点盲目飞行.有谁看到问题?
Parse Server提供OAuth身份验证.如何使用Parse Server的预定义OAuth模块(例如Facebook)注册新用户或登录"_User"类的现有用户?
Parse Server 文档提供了有关如何配置OAuth模块的示例.但是如何在iOS项目中使用它来登录或注册用户?
我已经开始使用parse-server npm模块了.
一切都很好,但是当我尝试使用REST请求在新类中实例化新对象时,我得到以下响应:
{"code":107,"error":"schema is frozen, cannot add: AccountTest2"}
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索这个问题,但我真的没有看到任何结果.
谢谢!
在试图了解Parse索引如何与Mongo一起工作时,我注意到我的一些缓慢查询正在使用该_rperm字段(来自ACL),即使我没有在定义的索引中指定它。它也不是在每个查询上,所以我想知道为什么有些查询需要_rperm索引而有些不需要。
如果仅按id查询,则索引似乎是必需的
{"_id": 1, "_rperm": 1},而不仅仅是{"_id": 1}已定义的索引。
解析在后台添加什么内容,什么_rperm时候需要将其作为索引包括在内?
我有一个应用程序设置,用户可以登录和注销(这是通过heroku托管的Parse服务器,使用Parse框架处理).
要登录,用户输入凭据,如果服务器验证它们,则segue将它们移动到另一个viewcontroller.注销用户退出应用程序并将其转移回登录屏幕.这些工作正常.
如果初始登录凭据不正确,则会显示警告,提示用户重试并且用户未登录(显然)并保留在登录屏幕上.
但是,如果用户登录,注销,然后输入不正确的凭据(按此顺序,没有关闭模拟器),则会出现问题.错误的凭据会显示提示警报; 点击"确定"关闭警报,用户没有登录,但是视图被锁定到注销屏幕(注销按钮是......这应该只有登录用户才能访问).不存在segue segue(编码或在故事板上),将用户从登录直接移动到注销屏幕.
没有任何操作可行,因为许多操作都需要用户ID,并且没有任何操作因为没有登录.我不知道为什么不正确的登录会以这种方式移动VC,因为不存在可以做到这一点的segue.有一个反向运动(退出时),但没有朝那个方向运动.
有人有什么想法吗?以下是相关的登录代码.
@IBAction func signInTapped(_ sender: UIButton) {
UIApplication.shared.beginIgnoringInteractionEvents()
PFUser.logInWithUsername(inBackground: userNameTextField.text!, password: passwordTextField.text!, block: { (user, error) in
if user != nil{
self.performSegue(withIdentifier: "signInSegue", sender: self)//if the sign in works
} else{
if let errorString = (error! as NSError).userInfo["error"] as? String{
let errorMessage = errorString
self.displayAlert("Failed login", message: errorMessage)//this is the code run when the login fails, yet it somehow can sometimes segue to the other viewcontroller
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
以下是正在进行的分步示意图.
xcode
swift
parse-server
我正在使用在MongoDB上运行的Parse Server.
假设我有集合User以及Comment用户和评论的连接表.用户可以喜欢注释,这会在连接表中创建新记录.
特别是在Parse Server中,可以使用集合中的"关系"字段定义连接表.
现在,当我想要检索所有评论时,我还需要知道当前用户是否都喜欢它们.如何在不进行其他查询的情况下执行此操作?
你可能会说我可以likers在Comment表中创建一个数组字段并使用$elemMatch,但这似乎不是一个好主意,因为可能会有数千个评论喜欢.
我的想法,但我希望有更好的解决方案:
我可以在表中创建一个数组字段someLikers,一个关系(连接表)字段allLikers和一个数字字段.然后把第一个100个likers在这两个和的和额外的likers只在.我会一直增加.likesCountCommentsomeLikersallLikersallLikerslikesCount
然后在查询注释列表时,我会实现调用$elemMatch,这将告诉我当前用户是否在内部someLikers.当我得到评论时,我会检查一些评论是否有likesCount > 100AND $elemMatch返回null.如果是这样,我将不得不在连接表中运行另一个查询,查找这些注释并检查(查询)当前用户是否喜欢它们.
有更好的选择吗?
谢谢!
我正在开发具有Parse Platform的应用程序.要获取数据我正在调用ParseCloud.callFunctionInBackground函数.
我已将Parse及其子类注册到Application类中,如下所示:
public class App extends Application {
@Override
public void onCreate(){
super.onCreate();
Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE);
OkHttpClient.Builder builder = new OkHttpClient.Builder();
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
builder.networkInterceptors().add(httpLoggingInterceptor);
ParseObject.registerSubclass(ParseMessage.class);
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId("KEY")
.server("URL")
.build());
}
}
Run Code Online (Sandbox Code Playgroud)
我有下面扩展ParseObject的模型类:
@ParseClassName("ParseMessage")
public class ParseMessage extends ParseObject {
// Ensure that your subclass has a public default constructor
public ParseMessage() {
super();
}
public ParsePhoto getPhotos() {
return (ParsePhoto) getParseObject("photos");
}
public void setPhotos(ParsePhoto value) {
put("photos", value);
}
public String …Run Code Online (Sandbox Code Playgroud) 我花了一整天的时间试图让某种调度程序与我的解析服务器(在 AWS Beanstalk Node.js 上运行)一起工作,我能够在 js 文件中获取一些代码,但它似乎没有工作。有什么办法可以设置某种调度程序,这样我就不必通过仪表板手动运行我的作业了吗?
每当我的对象的单个键的值在解析云代码afterSave挂钩中发生变化时,我都想发送推送通知。
Parse.Cloud.afterSave("Channel", function(request) {
var channel = request.object
// TODO: check if value of channel key "state" was changed
});
Run Code Online (Sandbox Code Playgroud)
如何检查密钥的值是否state已更新?
这是我可以从request对象中获得的所有数据:http : //parseplatform.org/Parse-SDK-JS/api/v1.11.0/Parse.Cloud.html#.TriggerRequest
该线程中建议的解决方案感觉不对:Parse Javascript API Cloud Code afterSave with access to beforeSave values
我知道我可以通过beforeSave钩子中的脏方法来做到这一点。但是,这对我不起作用。为什么?如果我确实向许多用户发送推送通知,这需要一些时间。接收推送通知的客户端开始从服务器请求更新的频道对象。然而,他们可能会收到旧版本的对象,因为只要beforeSave尚未完成发送所有推送,通道对象就不会持久保存在数据库中。
javascript after-save before-save parse-cloud-code parse-server
parse-server ×10
swift ×3
ios ×2
mongodb ×2
acl ×1
after-save ×1
android ×1
before-save ×1
database ×1
google-oauth ×1
heroku ×1
indexing ×1
java ×1
javascript ×1
node.js ×1
xcode ×1