簡體   English   中英

從Android Studio將數據(解析啟動器)保存到heroku時,為什么會出現“保存失敗”的提示?

[英]Why do I get a “Save Failed” when saving data (Parse Starter) from Android Studio to heroku?

我已經下載了Parse Starter Project ,並將Parse Starter Project從此處直接部署到Heroku(我使用了“ Deploy to Heroku”按鈕)。

在Heroku內部,一切都很好。 我進行了測試,沒有任何問題(我什至看到“我夢想成為一個網站”)。

當我在Android Studio中啟動應用程序並使用手機(三星Galaxy S6)或模擬器時,我總是會收到消息“保存失敗”。

Android Studio 2.2.3中的輸出

我在StarterApplication.java使用以下代碼:

package com.parse.starter;

import android.app.Application;
import android.util.Log;
import com.parse.Parse;
import com.parse.ParseACL;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseUser;
import com.parse.SaveCallback;

public class StarterApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();

    // Enable Local Datastore.
    Parse.enableLocalDatastore(this);

    // Add your initialization code here
    Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
        .applicationId("applicationId")
        .clientKey("clientKey")
        .server("https://nameofapp.herokuapp.com/parse/")
        .build()
    );

    ParseObject gameScore = new ParseObject("GameScore");
    gameScore.put("score", 1337);
    gameScore.put("playerName", "Sean Plott");
    gameScore.put("cheatMode", false);
    gameScore.saveInBackground(new SaveCallback() {
        public void done(ParseException e) {
            if (e == null) {
                Log.i("Parse", "Save Succeeded");
            } else {
                Log.i("Parse", "Save Failed");
            }
        }
    });

    ParseUser.enableAutomaticUser();
    ParseACL defaultACL = new ParseACL();
    // Optionally enable public read access.
    // defaultACL.setPublicReadAccess(true);
    ParseACL.setDefaultACL(defaultACL, true);
}

為什么我不能將數據保存到heroku-我的錯誤在哪里?

所有密鑰都通過“復制和粘貼”被放入代碼中,並且僅在此問題中不可讀!

期待您的回答和幫助!

更新:heroku CLI日志:2016-12-10T15:13:07.221288 + 00:00 app [web.1]:未捕獲的內部服務器錯誤。 {錯誤:連接ECONNREFUSED 127.0.0.1:27017 2016-12-10T15:13:07.221299 + 00:00應用程序[web.1]:在export._exceptionWithHostPort(util.js:1049:20)2016-12-10T15:13 :07.221299 + 00:00 app [web.1]:at Object.exports._errnoException(util.js:1026:11)2016-12-10T15:13:07.221302 + 00:00 app [web.1]:at TCPConnectWrap .afterConnect [作為oncomplete](net.js:1085:14)2016-12-10T15:13:07.221303 + 00:00 app [web.1]:名稱:'MongoError',2016-12-10T15:13:07.221304 +00:00 app [web.1]:消息:'connect ECONNREFUSED 127.0.0.1:27017'}錯誤:connect ECONNREFUSED 127.0.0.1:27017 2016-12-10T15:13:07.221305 + 00:00 app [web.1 ]:在Object.exports._errnoException(util.js:1026:11)2016-12-10T15:13:07.221305 + 00:00 app [web.1]:在export._exceptionWithHostPort(util.js:1049:20) 2016-12-10T15:13:07.221306 + 00:00 app [web.1]:位於TCPConnectWrap.afterConnect [作為未完成](net.js:1085:14)2016-12-10T15:13:07.230326 + 00:00 heroku [router]:at = info method = POST path =“ / parse / classes / GameScore” host = XXXXXXXXXXXX.herokuapp.com request_id = ca250458-621a-4749-bae9-6882208ae7ba fwd =“ 62.226.173.93” dyno = web.1 connect = 0ms service = 3ms status = 500 bytes = 531

27017是Mongo的默認端口,您是否將Mongo插件添加到了heroku應用程序?

我有這個問題。 如果確定您的應用程序ID,主密鑰和服務器正確,則可能是您遇到了同樣的問題,並且您的應用程序未正確鏈接到數據庫。

遵循這些步驟

  1. 下載並安裝包括命令行界面在內的heroku工具帶
  2. 打開一個cmd提示符(或非Windows操作系統的等效終端),然后輸入heroku login,在彈出的瀏覽器中登錄heroku,然后您應該會在終端提示符中看到“以YourUserName@EmailAddress.com登錄”,
  3. 輸入heroku config:set DATABASE_URI=*link到在heroku設置下的配置vars上標記為MONGODB_URI MongoDB的config:set DATABASE_URI=*link *,然后是-a NameOfAppToAssociateWithDatabaseHere ,然后按Enter。

再次運行您的項目,這一次您的日志應該顯示Save Succeeded。 然后,您可以在heroku中打開應用程序的資源,在資源中打開數據庫,然后在collections下查看其中包含的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM