2017-04-01 7 views
-1

私は答えがあなたのために愚かでなければならないことを知っていますが、私はfirebaseで関数を実行するためにjavascriptを起動しましたが、ここでも同じ問題(stackoverflow)でいくつかの質問を読んだ後でもスクリプトをブロックします。Xは関数ではありません

私のスクリプトを実行している私に語った:

TypeError: d.getFullYear is not a function 
at Date.sameDay (/user_code/index.js:36:41) 
at /user_code/index.js:61:33 
at process._tickDomainCallback (internal/process/next_tick.js:129:7) 

exports.sendNotificationToNewUser = functions.https.onRequest((request, response) => { 

    // Enable logging 
    // admin.database.enableLogging(true); 

    Date.prototype.sameDay = function(d) { 
     return this.getFullYear() === d.getFullYear() 
     && this.getDate() === d.getDate() 
     && this.getMonth() === d.getMonth(); 
    } 

    // Loop through users in order with the forEach() method. The callback 
    // provided to forEach() will be called synchronously with a DataSnapshot 
    // for each child: 
    var query = admin.database().ref("users").orderByKey(); 
    var defaultAuth = admin.auth(); 
    query.once("value") 
    .then(function(snapshot) { 
     snapshot.forEach(function(childSnapshot) { 
      // user will be "ada" the first time and "alan" the second time 
      var user_id = childSnapshot.key; 
      // childData will be the actual contents of the child 
      var user_data = childSnapshot.val(); 

      console.log(user_id); 

      admin.auth().getUser(user_id) 
      .then(function(userRecord) { 
       var create_date = userRecord.metadata.createdAt 
       console.log("Creation date:", create_date); 
       create_date.setDate(create_date.getDate()+4); 
       if (create_date.sameDay(Date.now())) { 
        //things 
       } 
      }); 
     }); 
    }); 
    response.send("OK"); 
}) 
+0

@Satpal new Date()にはい 'created_date' = 2017-03-28T19:02:user2263572 @ – filol

+0

は、私は何も返さない私のテストで27.000Zは、このメソッドは – filol

+0

を(私は思う)ジャバスクリプトに含めるあります@それはうまくいきません: 'TypeError :(中間値).setDate(...)。sameDayは関数ではありません。 ' – filol

答えて

0

Date.now()方法は、1970年1月1日00:00:00からの経過ミリ秒数を返します

。番号

.sameDay()を と呼んでいます

しかし、関数では日付オブジェクトが必要です。 変更Date.now()

if (create_date.sameDay(new Date())) { 
    //things 
} 
関連する問題