【问题标题】:Error message from Cloud-Code, using parse.com来自 Cloud-Code 的错误消息,使用 parse.com
【发布时间】:2015-01-18 18:05:26
【问题描述】:

我正在开发一个新应用程序,我要求用户通过电话号码注册,以便我可以将其存储在 Parse.com 的数据库中。我这样做是为了使用相同的电话号码发送推送通知。

我一直在尝试通过使用 Twilio 和 Parse.com 来实现这一目标。我在这里阅读了教程,并尝试按照它进行操作,但没有成功。

Link to the tutorial here.

这是我的云代码(如上面链接的 URL 所示)

var twilio = require('twilio')('removed', 'removed');

Parse.Cloud.define("sendVerificationCode", function(request, response) {
var verificationCode = Math.floor(Math.random()*999999);
var user = Parse.User.current();
user.set("phoneVerificationCode", verificationCode);
user.save();

twilio.sendSms({
    From: "+46 10 138 91 84",
    To: request.params.phoneNumber,
    Body: "Your verification code is " + verificationCode + "."
}, function(err, responseData) { 
    if (err) {
      response.error(err);
    } else { 
      response.success("Success");
    }
  });
});

Parse.Cloud.define("verifyPhoneNumber", function(request, response) {
    var user = Parse.User.current();
    var verificationCode = user.get("phoneVerificationCode");
    if (verificationCode == request.params.phoneVerificationCode) {
        user.set("phoneNumber", request.params.phoneNumber);
        user.save();
        response.success("Success");
    } else {
         response.error("Invalid verification code.");
    }
 });

这是我在 Xcode 中调用的代码:

NSString *number = @"0737879108";
NSDictionary *params = [NSDictionary dictionaryWithObject:number forKey:@"number"];
//NSLog(@"%@", params);

[PFCloud callFunctionInBackground:@"sendVerificationCode" withParameters:params block:^(id object, NSError *error) {
    NSString *message = @"";
    if (!error) 
        message = @"Your SMS invitation has been sent!";
    } else {
        message = @"Uh oh, something went wrong :(";
    }
   [[[UIAlertView alloc] initWithTitle:@"Invite Sent!"
                                message:message
                               delegate:nil
                               cancelButtonTitle:@"Ok"
                               otherButtonTitles:nil, nil] show];
  }];

为什么我会收到此错误消息?

TypeError: Cannot call method 'set' of null
at main.js:7:10 (Code: 141, Version: 1.6.1)

【问题讨论】:

    标签: objective-c parse-platform twilio parse-cloud-code


    【解决方案1】:

    错误非常简单。您使用user 调用set 方法。它说TypeError: Cannot call method 'set' of null。所以,问题在于你叫user。尝试调试用户或检查Parse.User.current()是否返回正确的用户。

    【讨论】:

    • 大声笑,我现在注意到的是我没有用户,这就是它返回 null 的原因。我想要实现的是,当新用户使用该应用程序时,他/她将需要通过提供电话号码进行验证,仅此而已。在验证之后,我会为那个人创建一个用户。但是使用我现在使用的方法之前需要一个用户,那么我将如何解决这个问题?任何建议将不胜感激@lucas Huang
    • 我认为是的。您可能会在进行任何操作之前解决如何获取用户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2018-02-18
    • 2014-09-21
    • 2016-04-06
    • 2010-10-29
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多