Reputation: 117
I currently starts working on Firebase in android so I am facing problem in creating data models.So kindly help me to create data model for below JSON from android studio.
Like:
Firebase ref = new Firebase(Firebase_Url);
ref.child("Student").setValue(anyVariable);
this code generates a simple model in firebase and stores the data but i want to store more data like below.
Any help from you guys would be very grateful.
"restaurants" : [
{
"name": "Burger Bar",
"backgroundImageURL": "http://somthing.com/Images/1.png",
"category" : "Burgers",
"contact": {
"phone": "1231231231",
"formattedPhone": "(123) 123-1231",
"twitter": "1twitter"
},
"location": {
"address": "5100 Belt Line Road, STE 502",
"crossStreet": "Dallas North Tollway",
"lat": 32.950787,
"lng": -96.821118,
"postalCode": "75254",
"cc": "US",
"city": "Addison",
"state": "TX",
"country": "United States",
"formattedAddress": [
"5100 Belt Line Road, STE 502 (Dallas North Tollway)",
"Addison, TX 75254",
"United States"
]
}
}
Upvotes: 1
Views: 3236
Reputation: 117
I found the solution :)
solution:
1) Make a new Project in Android Studio 2) Change the rules of Database to access it without authentication. like
3) First you have to make new project at Firebase Console.
4) Add this dependency in build.gradle(Module:app)
compile 'com.firebase:firebase-client-android:2.4.0'
5) add new class Restaurants.java
public class Restaurants {
String name;
String imageUrl;
String catagory;
Contacts contacts = new Contacts();
Location location = new Location();
public Restaurants(String name, String imageUrl, String catagory, Contacts contacts, Location location) {
this.name = name;
this.imageUrl = imageUrl;
this.catagory = catagory;
this.contacts = contacts;
this.location = location;
}
public String getCatagory() {
return catagory;
}
public void setCatagory(String catagory) {
this.catagory = catagory;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public Location getLocation() {
return location;
}
public void setLocation(Location location) {
this.location = location;
}
public Contacts getContacts() {
return contacts;
}
public void setContacts(Contacts contacts) {
this.contacts = contacts;
}
}
6) create class Contacts.java
public class Contacts {
String phone, formattedPhone, twitter;
// 0 argument constructor to initialize the Contatcs Object in Resturants.java
public Contacts() {}
public Contacts(String phone, String formattedPhone, String twitter) {
this.phone = phone;
this.formattedPhone = formattedPhone;
this.twitter = twitter;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getFormattedPhone() {
return formattedPhone;
}
public void setFormattedPhone(String formattedPhone) {
this.formattedPhone = formattedPhone;
}
public String getTwitter() {
return twitter;
}
public void setTwitter(String twitter) {
this.twitter = twitter;
}
}
7) Create class Location.java
public class Location {
String address, city, state, country;
ArrayList<Address> addressList;
public Location(){}
public Location(String address, String city, String state, String country, ArrayList<Address> addressList) {
this.address = address;
this.city = city;
this.state = state;
this.country = country;
this.addressList = addressList;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public ArrayList<Address> getAddressList() {
return addressList;
}
public void setAddressList(ArrayList<Address> addressList) {
this.addressList = addressList;
}
}
8) Create class Address.java
public class Address {
String street, area;
// 0 argument constructor to initialize the Address Object in Restaurants.java
public Address(){}
public Address(String street, String area) {
this.street = street;
this.area = area;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
}
9) Now MainActivity.java class will be like this
public class MainActivity extends AppCompatActivity {
ArrayList<Restaurants> restaurantsList;
ArrayList<Address> addressList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Firebase.setAndroidContext(this);
//Initializing the ArrayLists
restaurantsList = new ArrayList<Restaurants>();
addressList = new ArrayList<Address>();
//Adding data to ArrayLists
addressList.add(new Address("Street 5", "Mohafiz Town"));
addressList.add(new Address("Street 6", "Wapda Town"));
restaurantsList.add(new Restaurants("Ehsan", "url1", "student", new Contacts("0303-5367228", "no", "my Twitter"),
new Location("202-A", "GRW","pak","Pakistan", addressList)));
//Storing Data to Firebase
Firebase ref = new Firebase("https://fir-datamodelingprac.firebaseio.com/");
ref.setValue(restaurantsList);
}
}
10) Run the app
11) Output in firebase will be like this
Upvotes: 1