REST API - Android Studio, Node.js, Firebase - PullRequest
       2

REST API - Android Studio, Node.js, Firebase

0 голосов
/ 16 сентября 2018

Я студент колледжа, использующий мой OJT в этой компании, и мне было поручено создать приложение для Android, которое добавляет данные в базу данных Firebase с использованием REST API.Это приложение со списком элементов, в котором мне нужно зарегистрироваться, войти, просмотреть список элементов и иметь возможность добавлять, редактировать и удалять элементы.Мне необходимо использовать Node.js, Android Studio и Firebase.Руководитель моей команды сказал мне изучать REST API, Node.js, JSON, Firebase, и теперь я немного понимаю, что я должен делать с ними, по крайней мере, с концепциями и в теории.

проблема с кодами.Это потрясающе.Я новичок в javascript, я только начал изучать его в тот день, когда мне дали это задание (неделю назад).И я не знаю, как создавать коды в Android Studio и Node.js, чтобы API мог обрабатывать запросы / ответы между клиентом и сервером.Пожалуйста, имейте в виду, что у меня есть крайний срок примерно через 4-5 недель.

Коды, которые у меня есть сейчас, очень простые, и я даже не уверен, что они верны.Прямо сейчас у меня есть активность регистрации и сервер на Node.js.Я использую Android Studio 3.1.4, узел v8.11.4, npm v5.6.0

aSignUpActivity.java

public class aSignUpActivity extends AppCompatActivity {

EditText etFname, etLname, etEmail, etUname, etPword, etConfPword;
Button btnConfirmSU;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_a_sign_up);

    etFname = (EditText) findViewById(R.id.asuFnameET);
    etLname = (EditText) findViewById(R.id.asuLnameET);
    etEmail = (EditText) findViewById(R.id.asuEmailET);
    etUname = (EditText) findViewById(R.id.asuUnameET);
    etPword = (EditText) findViewById(R.id.asuPwordET);
    etConfPword = (EditText) findViewById(R.id.asuCpwordET);
    btnConfirmSU = (Button) findViewById(R.id.asuConfirmSU);

    btnConfirmSU.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            confirmSignupClicked();
        }
    });
}

public void confirmSignupClicked(){
    String fName = etFname.getText().toString();
    String lName = etLname.getText().toString();
    String eMail = etEmail.getText().toString();
    String uName = etUname.getText().toString();
    String pWord = etPword.getText().toString();
    String cPword = etConfPword.getText().toString();

    if(TextUtils.isEmpty(fName) || TextUtils.isEmpty(lName) || TextUtils.isEmpty(eMail) || TextUtils.isEmpty(uName) || TextUtils.isEmpty(pWord) || TextUtils.isEmpty(cPword)){
        Toast.makeText(this, "Can't leave any text fields empty.", Toast.LENGTH_SHORT).show();
    }
    else{
        Intent intent = new Intent(aSignUpActivity.this, aStartPageActivity.class);
        Toast.makeText(this, "Account created.", Toast.LENGTH_SHORT).show();
        startActivity(intent);
    }
}
}

server.js (я скопировал эти коды и отредактировал их в соответствии с моей ситуацией)

var admin = require('firebase-admin')
var serviceAccount = require('./myprivatekey.json')

// var port = process.env.PORT || 3000
// var express = require('express')
// var app = express()
// var bodyParser = require('body-parser')

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "mydatabase.firebaseio.com"
})

// app.use(bodyParser.urlencoded({extended: true}))
// app.use(bodyParser.json())

var db = admin.database()
var dbRef = db.ref('usersinfo')

//API - SIGN UP USER
function addUser(userid, username, email, password){
    var usersRef = dbRef.child("user")
    usersRef.set({
        "USER ID": userid,
        "USERNAME": username,
        "EMAIL": email,
        "PASSWORD": password,
    })
}

//testing if function works
addUser("test", "test", "test", "test")

//API - ADD ITEM
function addItem(userid, image, name, description){
    var itemsRef = dbRef.child("useritems")
    itemsRef.set({
        "USER ID": userid,
        "IMAGE": image,
        "NAME": name,
        "DESCRIPTION": description
    })
    var itemId = itemsRef.key
}

//testing if function works
addItem("test", "test", "test", "test")

//API - VIEW ITEM
function viewItem(itemId) {
    var itemRef = dbRef.child("useritems/" + itemId)
    itemRef.on("value", function(snapshot) {
      if (snapshot.exists()) {
        console.log(snapshot.val())
        return snapshot.val()
      } else {
        console.log("Cannot view item.", itemId)
        return null
      }
    }, function (errorObject) {
      console.log("error: " + errorObject.code)
    });
  }

//API - EDIT ITEM
function editItem(itemId, editimage, editname, editdescription){
    var itemRef = dbRef.child("useritems/", itemId)
    itemRef.update({
        "IMAGE": editimage,
        "NAME": editname,
        "DESCRIPTION": editdescription
    })
    console.log("Item successfully edited")
    itemRef.on("value", function(snapshot){
        console.log(snapshot.val())
    }, function (errorObject){
        console.log("Edit failed: " + errorObect.code)
    })
}

//API - DELETE ITEM
function deleteItem(itemId){
    itemRef = dbRef.child("useritems/" + itemId)
    itemRef.once("value")
    .then(function(snapshot){
        if(snapshot.exists()){
            console.log("Item removed successfully.")
            return "Item removed."
        }else{
            console.log("Item does not exist")
            return "Error."
        }
    })
    .catch(function(error){
        console.log("deleteItem failed: " + error.code)
    })
}

Я спрашиваю, может ли кто-нибудь указать мне правильное направление, как вообще начать это?Нравится ссылки на ресурсы?Советы по моим кодам?Что-то дружелюбное для начинающих.Большинство примеров на YouTube и Google используют HTML в качестве внешнего интерфейса для клиента, учебные пособия для приложения для чата Android или используют mongoDB / SQL для базы данных.Может быть, я недостаточно хорошо ищу?Пожалуйста, помогите.

1 Ответ

0 голосов
/ 23 сентября 2018

Я бы нашел учебник о том, как создать REST-приложение node.js (может быть, с помощью Express) и как с ним работать. Используйте Почтальон для отправки запросов. После того, как сервер заработал, вы можете перейти к приложению Andraid. Я бы порекомендовал Retrofit для выполнения запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...