Tải bản đầy đủ (.docx) (55 trang)

GIÁO TRÌNH MIT LẬP TRÌNH ANDROID

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.46 MB, 55 trang )

GIÁO TRÌNH MIT
CHAT WITH FIREBASE
Thiết kế giao diện Screen1

Code Screen1


Thiết kế giao diện ScreenChat


Code ScreenChat




READ – WRITE – UPDATE –
DELETE DATA FROM GOOGLE
SHEETS


CODE





Code js
function doGet(e){
var action = e.parameter.action;
var
ss=SpreadsheetApp.openByUrl(" />JPgwVsZPTDW_09ElORNZA/edit#gid=0L");


var sheet = ss.getSheetByName("Sheet1");
if(action=="insert")
return insert_value(e,sheet);
//Make sure you are sending proper parameters
if(action=="read")
return read_value(e,ss);
if(action=="update")
return update_value(e,sheet);
if(action=="delete")
return delete_value(e,sheet);
}
//Recieve parameter and pass it to function to handle


function insert_value(request,sheet){
var id = request.parameter.id;
var name = request.parameter.name;
var class1 = request.parameter.class;
var phone = request.parameter.phone;
var flag=1;
var lr= sheet.getLastRow();
for(var i=1;i<=lr;i++){
var id1 = sheet.getRange(i, 2).getValue();
if(id1==id){
flag=0;
var result="Id already exist..";
}}
//add new row with recieved parameter from client
if(flag==1){
var d = new Date();

var currentTime = d.toLocaleString();
var rowData = sheet.appendRow([currentTime,id,name, class1, phone]);
var result="Insertion successful";
}
result = JSON.stringify({
"result": result
});
return ContentService
.createTextOutput(request.parameter.callback + "(" + result + ")")
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}
function read_value(request,ss){
var output = ContentService.createTextOutput(),
data = {};
//Note : here sheet is sheet name , don't get confuse with other operation
var sheet="sheet1";
data.records = readData_(ss, sheet);
var callback = request.parameters.callback;
if (callback === undefined) {
output.setContent(JSON.stringify(data));
} else {
output.setContent(callback + "(" + JSON.stringify(data) + ")");
}
output.setMimeType(ContentService.MimeType.JAVASCRIPT);
return output;
}
function readData_(ss, sheetname, properties) {
if (typeof properties == "undefined") {



properties = getHeaderRow_(ss, sheetname);
properties = properties.map(function(p) { return p.replace(/\s+/g, '_'); });
}
var rows = getDataRows_(ss, sheetname),
data = [];
for (var r = 0, l = rows.length; r < l; r++) {
var row = rows[r],
record = {};
for (var p in properties) {
record[properties[p]] = row[p];
}
data.push(record);
}
return data;
}
function getDataRows_(ss, sheetname) {
var sh = ss.getSheetByName(sheetname);
return sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
}
function getHeaderRow_(ss, sheetname) {
var sh = ss.getSheetByName(sheetname);
return sh.getRange(1, 1, 1, sh.getLastColumn()).getValues()[0];
}
//update function
function update_value(request,sheet){
var output = ContentService.createTextOutput();
var id = request.parameter.id;
var class1 = request.parameter.class;
var phone = request.parameter.phone;
var flag=0;

var name = request.parameter.name;
var lr= sheet.getLastRow();
for(var i=1;i<=lr;i++){
var rid = sheet.getRange(i, 2).getValue();
if(rid==id){
sheet.getRange(i,3).setValue(name);
sheet.getRange(i,4).setValue(class1);
sheet.getRange(i,5).setValue(phone);
var result="value updated successfully";
flag=1;
}
}
if(flag==0)


var result="id not found";
result = JSON.stringify({
"result": result
});
return ContentService
.createTextOutput(request.parameter.callback + "(" + result + ")")
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}
function delete_value(request,sheet){
var output = ContentService.createTextOutput();
var id = request.parameter.id;
var name = request.parameter.name;
var flag=0;
var lr= sheet.getLastRow();
for(var i=1;i<=lr;i++){

var rid = sheet.getRange(i, 2).getValue();
if(rid==id){
sheet.deleteRow(i);
var result="value deleted successfully";
flag=1;
}
}
if(flag==0)
var result="id not found";
result = JSON.stringify({
"result": result
});
return ContentService
.createTextOutput(request.parameter.callback + "(" + result + ")")
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}


BÁO CÁO DẠY HỌC TRỰC TUYẾN
Thiết kế giao diện

App này sử dụng 2 đối tượng là Web_Reading và
Web_Adding. Web_Reading dùng để đọc file googlesheets còn
Web_Adding dùng để gọi googleform. Muốn học cách sử dụng
googleform hãy tham khảo bài viết dưới đây.
1. Truy cập vào googleform gõ: />2. Đăng nhập vào tài khoản gmail


Hoặc gõ


Sau đó đăng nhập vào tài khoản, click vào

Sau đó click vào


Đặt tên cho form


Click vào đây để copy

Click vào đây để xóa


Nếu muốn làm kiểm tra
Click vào đây


Click vào đây

Click vào đây


Click vào đây

Sau đó mở tab mới và dán (paste) đường dẫn vào thanh địa chỉ ta được

Copy cái này: &entry.254621970= và cái này: &entry.1610622299=

Xóa chữ edit và thêm chữ formResponse:
/>Sau đó dán (paste) vào Web_Adding.

Chuyển qua phần Câu trả lời và click vào


Copy địa chỉ này và dán (paste) vào Web_Readding, xóa chữ: edit#gid=374919490 và thêm chữ:
export?format=csv

/>Ngồi ra googleform có rất nhiều tính năng khác.

1

2
Click vào đây


Click vào đây

Nhúng vào web hoặc app

1
2

Click vào đây


ỨNG DỤNG TẠO MỚI – CẬP NHẬT – XÓA – TÌM KIẾM
CƠ SỞ DỮ LIỆU FIREBASE
1. Giới thiệu màn hình chính

2. Các thành phần (components)



3. Các thuộc tính (Properties)


×