Sunday, March 04, 2018

Integrating Firebase with Jooby

Lately, I've become enamored of RESTful web microframeworks written in Java, such as:

Almost any of these frameworks will take 99% of the pain out of setting up a RESTful web app, and allow you to have working code almost immediately (assuming you know enough Maven and/or Gradle to get by), but I quickly settled on Jooby as the best impedance match for my particular needs (which are modest) and my skillset (likewise modest). Spark came in a close second.

Jooby is an amazingly powerful framework with some really endearing features (which I don't have time to go into here). I can't say enough good things about Jooby. Go to https://jooby.org/quickstart/ right now and check it out, if you're a Java developer.

Once I realized I could get Java compilation to work in Microsoft's fantastic Visual Studio Code (using the nifty Java extensions from RedHat), and once I realized I could launch my stuff straight from the Terminal in VS Code, I was off and running. When I learned that running a project with "mvn jooby:run" would not only start up the app and server (I'm using Undertow as the embedded server, incidentally, with great results...) but also let me automagically hot-deploy my Java app from VS Code just by doing a Save (with automatic recompilation triggered by Save), I was sold.

Jooby integrates with a lot of great stuff out of the box, but one thing I wanted was JSON-based NoSQL database persistence (without having to resort to something as elaborate as MongoDB). I spent an hour or so researching existing object databases to see which ones might be Java-friendly, easy to learn, embeddable, and lightweight (BWAH HA HA) -- to little avail. Ultimately, I decided it might be fun to go in a slightly different direction and give Google's Firebase Cloud a try.

That's when the misery started.

I tried putting the necessary dependencies in my pom.xml and setting up my imports in my Jooby app, but 9 lines of code immediately turned red and I had strange syntax errors on perfectly fine constructions, with obscure warnings about Maven m2e, such as maven-enforcer-plugin (goal "enforce") is ignored by m2e.

Then it turned out my Firebase import statements weren't working, but sometimes (if I moved code around) they did resolve. And then sometimes, a Maven compile would complete flawlessly; but then a mvn package or jooby:run would immediately fail with unresolved "compilation issues."

When things go this sour this fast, you have to take a deep breath and start looking at how to get something to work again (maybe by removing code).

Fast-forward a couple hours. I decided to go back to the Firebase web site and make sure I was following their Getting Started instructions exactly. I was. Then I Googled around until I came upon https://github.com/GoogleCloudPlatform/java-docs-samples, where there was a firestore (not Firebase) project with a Quickstart.java file that held all the answers.

Long story short, many of the imports were new, the techniques for setting the connection options and obtaining the database handle didn't end up matching anything on Google's Firebase Quickstart page, and I had to disable getUpdateTime() on results.get(), but ultimately, I succeeded in posting a new document record to the demo database from my Jooby test app.

The code that finally worked, for me, is shown below with no cleanups whatsoever; I decided to leave all the uglinesses in place so you can get a feel for how much trial and error was involved in finally getting this shit stuff to work.

You'll have to ignore some of my test routes. The main thing I wanted to get working was the /firebaseTest route, which triggers the updateFirebase() method.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.kt;

import org.jooby.Jooby;

import com.google.api.core.ApiFuture;
import com.google.cloud.firestore.DocumentReference;
// [START fs_include_dependencies]



import java.util.HashMap;

import java.util.Map;
// import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.firestore.Firestore;
//import com.google.firebase.FirebaseOptions;
import com.google.cloud.firestore.FirestoreOptions;
// import com.google.firebase.FirebaseApp;
//import com.google.firebase.*;

public class App extends Jooby {
  Firestore db = null;
  {
    assets("/**"); // need this! else /css & /js not found (404)
    // put an index page up:
    assets("/", "index.html");

    get("/test", () -> "Wow. It's alive!").produces("text/html");

    ws("/ws", ws -> {
      ws.onMessage(message -> System.out.println(" message: " + message.value()));
      System.out.println("Websockets available on /ws...");
    });

    get("/firebaseTest", () -> {
      updateFirebase(); 
      return "called updateFirebase()";
    });

    
 // Use the application default credentials
    
    String projectId = "the-hello-world-project-98dea";
    //GoogleCredentials credentials=GoogleCredentials.getApplicationDefault();

    //FirebaseOptions options =  new FirebaseOptions.Builder().setCredentials(credentials).setProjectId(projectId).build();

    //FirebaseApp.initializeApp(options);

    FirestoreOptions firestoreOptions =
        FirestoreOptions.getDefaultInstance().toBuilder()
            .setProjectId(projectId)
            .build();
     db = firestoreOptions.getService();
   // Firestore db = FirestoreOptions.getDefaultInstance().getService();
    //Firestore db = FirestoreClient.getFirestore();

  }

  
  public void updateFirebase() {
    DocumentReference docRef = db.collection("users").document("kthomas");
    // Add document data 
    Map data = new HashMap<>();
    data.put("first", "Kas");
    data.put("last", "Thomas");
    data.put("born", 1792);
    //asynchronously write data
    ApiFuture result = docRef.set(data);
    // ...
    // result.get() blocks on response
    // System.out.println("Update time : " + result.get().getUpdateTime());
  }
  

  public static void main(final String[] args) {
    run(App::new, args);
  }

}

And so, before you say "but your code uses Firestore, not Firebase," first of all, yes, technically you are right, I am using the (newer, document-oriented) Firestore Cloud database rather than the legacy JSON-oriented Firebase Realtime Database. (Read about the differences here.) The nomenclature is extraordinarily confusing. And it's not made any easier by the Java package names. Who would guess, for example, that FirestoreClient is in the com.google.firebase.cloud  package?

Be that as it may: Google says my Firestore database instance did indeed update, as desired, in the Firebase console at https://console.firebase.google.com -- which was the whole point of the exercise. I wanted the cloud database (the one you can inspect in the Firebase console) to update. And it did.

But it's no thanks to Google, whose online tutorial failed miserably to do the job and led to hours wasted troubleshooting was what turned out to be a pom.xml dependency issue, the magic missing piece being:

<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-firestore</artifactId>
<version>0.37.0-beta</version>
</dependency>

My advice to Google would be:
  • Tear down the online tutorials and start over.
  • Make it simpler.
  • Make it foolproof. 
  • Stop with the confusing names: Fire-this, Fire-that. Something Something Cloud. Fuck that crap. Get it together. Simplify the branding.
  • Eliminate boilerplate code (not so much a problem in the above code, but a problem in the non-working example code shown on Google's site). But please don't put me in @AnnotationHell. Please don't be Spring.
  • Start leveraging Java 8 lambda syntax.
  • Provide easy out-of-the-box integration with microframeworks like Jooby, Play, etc. 
Let me know when this FirefoobarCloud stuff is out of beta. IMHO, it's not fully baked.


377 comments:

  1. I think if the coding language is very difficult to understand by me. Do you have a tip for me, so I can understand the coding in this short time? Because I will have thesis exams at month 6

    and go my website ya Situs Maxbet Online

    ReplyDelete
    Replies
    1. I was suffering from Warts Simplex Virus, i was totally depressed due to my predicament , until i meet Dr Nana the great Traditional healer who cured me. you can also contact him now on whatsapp +2347014784614.or via email:on drnanaherbalsolutionhome@gmail .com for more information.







      I was suffering from Warts Simplex Virus, i was totally depressed due to my predicament , until i meet Dr Nana the great Traditional healer who cured me. you can also contact him now on whatsapp +2347014784614.or via email:on drnanaherbalsolutionhome@gmail .com for more information.

























      Delete
  2. Your article is good, but are you able to give more details? I like it but do not really understand. You can also see I have on agen judi bola terpercaya

    ReplyDelete
  3. Very interesting once your article is, try to stop by our place. We are one of the bandar judi serving the creation of an official 2018 World Cup account.

    ReplyDelete
  4. according to my view your article belongs to a very good class, but what other articles are very good anymore? You can visit daftar klik4d

    ReplyDelete
  5. Is there a better article than this? I think not, because this is the best of other blogs. You can also visit my blog situs judi bola resmi

    ReplyDelete
  6. We Provide Best Packers And Movers Jaipur List for Get Free Best Quotes, Compare Charges,
    Save Money And Time,Household Shifting Services.
    Packers And Movers Jaipur

    ReplyDelete
  7. We Provide Best Packers And Movers Jaipur List for Get Free Best Quotes, Compare Charges,
    Save Money And Time,Household Shifting Services.
    Packers And Movers Jaipur

    ReplyDelete
  8. depo bola deposit 10rb paling murah di Indonesia. Dengan satu akun saja anda bisa memainkan banyak permainan seperti sportbook, casino dan poker.

    ReplyDelete
  9. buat kalian yang suka main game taruhan online bisa langsung Daftar Joker123 diri kalian langsung gratis disini

    ReplyDelete
  10. I know this is one of the most meaningful information for me. And I'm animated reading your article. But should remark on some general things, the website style is perfect; the articles are great. research paper writing service, research paper service

    ReplyDelete
  11. buat kalian yang suka main game taruhan online bisa langsung join di Daftar Sabung Ayam S128

    ReplyDelete
  12. buat kalian yang suka main game taruhan online bisa langsung join di Daftar Sabung Ayam S128

    ReplyDelete
  13. Really impressive post. I read it whole and going to share it with my social circules. I enjoyed your article and planning to rewrite it on my own blog.
    Packers and Movers Delhi

    ReplyDelete
  14. keren banget nihh buruan kunjungi juga di http://agenplay1628.net/ untuk menikmati berbagai macam permainan menarik lhoo guyss

    ReplyDelete
  15. Packers And Movers Hyderabad Local Household Shifting Service, Get Free Best Price Quotes Local Packers and Movers in Hyderabad List, Compare Charges, Save Money And Time @ Packers And Movers Hyderabad

    ReplyDelete
  16. Packers And Movers Chennai Local Household Shifting Service, Get Free Best Price Quotes Local Packers and Movers in Chennai List, Compare Charges, Save Money And Time @ http://PackersMoversChennai.in/

    ReplyDelete
  17. Really impressive post. I read it whole and going to share it with my social circules. I enjoyed your article and planning to rewrite it on my own blog.
    Local Packers And Movers Bangalore

    ReplyDelete
  18. Really impressive post. I read it whole and going to share it with my social circules. I enjoyed your article and planning to rewrite it on my own blog.
    Packers And Movers in Bangalore Local

    ReplyDelete
  19. Really impressive post. I read it whole and going to share it with my social circules. I enjoyed your article and planning to rewrite it on my own blog.
    Packers And Movers Bangalore

    ReplyDelete
  20. We Provide List Of Best And Affordable 100% Safe Packers And Movers Bangalore For Local Shifting. Professional, Trusted And Verified Movers And Packers With Price List.
    Packers And Movers Bangalore

    ReplyDelete
  21. I am bold enough among many others to state that there is now a potent cure to this sickness but many are unaware of it. I discovered that I was infected with the virus 3 months ago, after a medical check-up. My doctor told me and I was shocked, confused and felt like my world has crumbled. I was dying slowly due to the announcement of my medical practitioner but he assured me that I could leave a normal life if I took my medications (as there was no medically known cure to Herpes). I went from churches to churches but soon found that my case needed urgent attention as I was growing lean due to fear of dying anytime soon. In a bid to look for a lasting solution to my predicament, I sought for solutions from the herbal world. I went online and searched for every powerful trado-medical practitioner that I could severe, cos I heard that the African Herbs had a cure to the Herpes syndrome. It was after a little time searching the web that I came across one Dr Itua(A powerful African Herbal Doctor), who offered to help me at a monetary fee. I had to comply as this was my final bus-stop to receiving a perfect healing. My last resolve was to take my life by myself, should this plan fail. At last it worked out well. He gave me some steps to follow and I meticulously carried out all his instructions. Last month, to be precise, I went back to the hospital to conduct another test and to my amazement, the results showed that negative,Dr Itua Can As Well Cure The Following Desease…Cancer,Hiv,Herpes, Hepatitis B,Liver Inflammatory,Diabetis,Fribroid, Dercum,Get Your Ex Back, You can free yourself of this Herpes virus by consulting this great African Herbal Doctor via this e-mail: drituaherbalcenter@gmail.com or call and whatsapp him on +2348149277967 He will help you and his herb medication is sure. he has the cure on all disease .You can talk to me on INSTAGRAM..tashamoore219....

    ReplyDelete
  22. Thanks for the informative article. This is one of the best resources I have found in quite some time.Nicely written and great info. I really cannot thank you enough for sharing.

    Herbalife in chennai
    wellnesscoaches in chennai
    Weightloss in chennai
    Weightgain in chennai

    ReplyDelete
  23. As you have now understood the usage of ‘Record and Playback’ tool, the following are the different posts using which you can explore the functioning of ‘Selenium IDE’
    selenium Training in chennai
    As you have now understood the usage of ‘Record and Playback’ tool, the following are the different posts using which you can explore the functioning of ‘Selenium IDE’
    selenium Training in chennai

    ReplyDelete
  24. We Provide Best Packers And Movers Noida List for Get Free Best Quotes, Compare Charges, Save Money And Time, Household Shifting Services
    Packers And Movers Noida

    ReplyDelete
  25. great post thanks for sharing this wonderful post
    tutuapp

    ReplyDelete
  26. This comment has been removed by the author.

    ReplyDelete
  27. This comment has been removed by the author.

    ReplyDelete
  28. Chennai with Reasonable ###Packers and Movers Price Quotation. We Provide Household Shifting, Office Relocation, ✔✔✔Local and Domestic Transportation Services, Affordable and Reliable Shifting Service Charges @ Packers And Movers in Chennai

    ReplyDelete
  29. It was during my research on HIV/Herpes that I stumbled upon the Hiv/Herpes information; information which is quite easy to find when doing a search for STD on google. I was into conspiracy at the time thought of HIV/Herpes Cured' being a conspiracy was something Ignorance though,I found pretty interesting about herbal medicine. I asked questions about the Herbal cure's on official HIV/Herpes websites and I was banned for doing so by moderators who told me that I was parroting Hiv/Herpes propaganda. This reinforced my belief that there is a cure for Hiv/Herpes Then i found a lady from germany name Achima Abelard Dr Itua Cure her Hiv so I send him a mail about my situation then talk more about it and send me his herbal medicine I drank for two weeks.And today I'm Cured no Hiv/Herpes in my life,I searched for Hiv/Herpes groups to attempt to make contact with people in order to learn more about Hiv/Herpes Herbal Cure's I believed at this time that you with the same disease this information is helpful to you and I wanted to do the best I could to spread this information in the hopes of helping other people.That Dr Itua cure Hiv,Herpes,Hepatitis,Diabetes,Copd,Fibroid,Als, And Cancer. He's a herbal doctor with a unique heart of God, Contact Emal..drituaherbalcenter@gmail.com Phone or whatsapp..+2348149277967.

    ReplyDelete
  30. This comment has been removed by the author.

    ReplyDelete
  31. Thanks for this article!
    Check up this writing app
    It's very useful app!

    ReplyDelete
  32. Its really good to read such an informative post. Thank you for sharing this post with us i.e. Dissertation Help

    Online Dissertation Help
    Dissertation Writing Service

    ReplyDelete
    Replies
    1. The foundation of Weborbit Solutions was mainly through an initiative taken by a group of enthusiast.The Premier Business Service provider is mainly catering to the IT and the branding sector. Hence Weborbit is having the basic concept to lead you digitally.
      Best Web Development Company in kolkata

      Best Android App Development Company in kolkata

      Delete
  33. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this.
    Best Data Science Online Training Institute In Hyderabad | Online Data Science Training
    Data Science Online Training Institute In Hyderabad
    Data science online training in hyderabad
    Best data science training in hyderabad

    ReplyDelete

  34. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this. best sap simple finance online training institute in hyderabad

    ReplyDelete
  35. Packers and Movers Chennai Give Safe and Reliable ***Household Shifting Services in Chennai with Reasonable ###Packers and Movers Price Quotation. We Provide Household Shifting, Office Relocation, ✔✔✔Local and Domestic Transportation Services, Affordable and Reliable Shifting Service Charges @
    Packers And Movers in Chennai

    ReplyDelete
  36. Halloween or Hallowe'en, also known as Allhalloween, All Hallows' Eve, or All Saints' Eve, is a celebration observed in a number of countries on 31 October, the eve of the Western Christian feast of All Hallows' Day
    happyhalloweenimages2018.com

    ReplyDelete
    Replies
    1. The foundation of Weborbit Solutions was mainly through an initiative taken by a group of enthusiast.The Premier Business Service provider is mainly catering to the IT and the branding sector. Hence Weborbit is having the basic concept to lead you digitally.


      Best Web Development Company in kolkata


      Best Android App Development Company in kolkata

      Delete
  37. Packers and Movers Pune Provide High Quality ***Household Shifting, Home/Office Relocation, Insurance, Packing, Loading, ###Car Transportation Service Pune and High experiences, Top Rated, Safe and Reliable, Best and Secure Packers and Movers Pune Team List. Get ✔✔✔Affordable Rate Charts and Compare Quotation and Save Money and Time @ Packers And Movers in Pune

    ReplyDelete
  38. Packers and Movers Pune Provide High Quality ***Household Shifting, Home/Office Relocation, Insurance, Packing, Loading, ###Car Transportation Service Pune and High experiences, Top Rated, Safe and Reliable, Best and Secure Packers and Movers Pune Team List. Get ✔✔✔Affordable Rate Charts and Compare Quotation and Save Money and Time @ Packers And Movers in Pune

    ReplyDelete
  39. myTectra Placement Portal is a Web based portal brings Potentials Employers and myTectra Candidates on a common platform for placement assistance

    ReplyDelete
  40. Packers and Movers Pune Provide High Quality ***Household Shifting, Home/Office Relocation, Insurance, Packing, Locading, ###Car Transportation Service Pune and High experiences, Top Rated, Safe and Reliable, Best and Secure Packers and Movers Pune Team List. Get ??? Affordable Rate Charts and Compare Quotation and Save Money and Time .
    Packers And Movers Pune

    ReplyDelete
  41. I think the admin of this web site is in fact working hard for his site, since here every material is quality based information.


    Halloween Clipart 2018
    Happy Halloween Clipart For Facebook
    Happy Halloween Clipart
    Halloween Clipart And Wallpapers
    Halloween Clipart And Pictures

    ReplyDelete
  42. Spot on with this write-up, I actually think this website needs far more attention. I’ll probably be back again to read more, thanks for the info!

    Halloween Captions 2018
    Happy Halloween Captions For Facebook
    Halloween Captions Images
    Halloween Captions And Sayings
    Halloween Captions And Short Poems

    ReplyDelete
  43. Spot on with this write-up, I actually think this website needs far more attention. I’ll probably be back again to read more, thanks for the info!


    Funny Halloween Quotes 2018
    Funny Halloween Quotes For Facebook
    Funny Halloween Quotes Images
    Funny Halloween Quotes And Greetings
    Funny Halloween Quotes For Status

    ReplyDelete
  44. excellent put up, very informative. I wonder why the opposite experts of this sector do not understand this. You must continue your writing. I’m sure, you’ve a great readers’ base already!


    Free Halloween Coloring Pages 2018
    Free Halloween Coloring Pages For Facebook
    Halloween Coloring Pages 2018
    Happy Halloween Coloring Pgaes Download
    Happy Halloween Coloring Pages HD

    ReplyDelete
  45. Hi there, You’ve done an incredible job. I will definitely digg it and personally recommend to my friends. I’m sure they will be benefited from this web site.


    Short Halloween Poems 2018
    short Halloween Poems For Facebook
    Halloween Poems 2018
    Happy Halloween Poems And Pharses
    Short Halloween Poems For Status

    ReplyDelete
  46. Wow, fantastic weblog structure! How lengthy have yyou ever been running a blog for? you make running a blog glance easy. The overall look of your web sire is excellent, let alone the content material!


    Happy Halloween Quotes 2018
    Happy Halloween Quotes For Facebook
    Halloween Quotes 2018
    Happy Halloween Quotes For Status
    Happy Halloween Quotes Images

    ReplyDelete
  47. Normally I do not read post on blogs, but I would like to say that this write-up very forced me to try and do so! Your writing style has been surprised me. Thank you, very nice article.


    Funny Halloween Pictures 2018
    Funny Halloween Pictures For Facebook
    Halloween Pictures 2018
    Halloween Pictures Free Download
    Halloween Pictures HD

    ReplyDelete
  48. Whats up very cool site!! Guy .. Beautiful .. Amazing .. I will bookmark your site and take the feeds additionally? I’m happy to seek out numerous useful info here within the submit, we’d like work out extra strategies on this regard, thank you for sharing. . . . . .


    Free Halloween Wallpaper 2018
    Free Halloween Wallpaper For Facebook
    Halloween Wallpaper 2018
    Halloween Wallpaper Free Download
    Halloween Wallpaper HD

    ReplyDelete
  49. I blog quite often and I seriously thank you for your content. This great article has truly peaked my interest. I am going to take a note of your site and keep checking for new information about once per week. I opted in for your Feed as well


    Happy Halloween Images 2018
    Happy Halloween Images For Facebook
    Halloween Images 2018
    Halloween Images Free Download
    Halloween Images HD

    ReplyDelete
  50. Robotic Process Automation (RPA) is one of the most exciting developments in Business Process Management (BPM) in recent history. Some industry experts believe it may be even more transformational than cloud computing transformational than cloud Automationminds team. (RPA)Automationminds lets you program in (RPA),
    Robotic Process Automation Anywhere and course bluePrism

    ReplyDelete
  51. Thank you for this post. This is very interesting information for me. paperhelp.org reviews

    ReplyDelete
  52. We can learn a lot about Why Deep Learning Works by studying the properties of the layer weight matrices of pre-trained neural networks. And, hopefully, by doing this, we can get some insight into what a well trained DNN looks like–even without peaking at the training data.
    MACHINE LEARNING training in chennai

    ReplyDelete
  53. As you have now understood the usage of ‘Record and Playback’ tool, the following are the different posts using which you can explore the functioning of ‘Selenium IDE’
    selenium Training in chennai

    ReplyDelete
  54. As you have now understood the usage of ‘Record and Playback’ tool, the following are the different posts using which you can explore the functioning of ‘Selenium IDE’
    selenium Training in chennai

    ReplyDelete
  55. Data science is a fast-moving field – if you’re pursuing a data science career, or even if you’re just interested in data-related topics, you need to invest time to keep up with the trends. Following a few top blogs is a great way to stay abreast of developments in data analysis, statistical software, data visualization, and more. These AUTOMATIONMINDS bloggers consistently offer great resources and tutorials, along with opportunities to connect with and learn from other leading data science professionals.
    DATA SCIENCE training in chennai

    ReplyDelete
  56. As you have now understood the usage of ‘Record and Playback’ tool, the following are the different posts using which you can explore the functioning of ‘Selenium IDE’
    selenium Training in chennai

    ReplyDelete
  57. Thank you for this article. Actual information! I know where you can find grademiners promo code, welcome to WritingPaperSucks!

    ReplyDelete
  58. https://www.blogger.com/comment.g?postID=4234711171242373457&blogID=5164930598939647722&isPopup=true&page=2

    Zammora is an Online Store that was established in 2017, providing fashion products for women. We are focused on the beauty of design, and we are obsessed with quality

    tas wanita

    Search engine optimization (SEO) or Indonesian SEO is the process of influencing the visibility of websites or web pages in search engine results - often referred to as "natural", "organic" or "earned" results. In general, the earlier (or rank higher on search results pages), and more often sites appear in the list of search results, the more visitors will receive from search engine users, and these visitors can be converted to customers.

    SEO can target various types of searches, including image search, local search, video search, academic search, news search and industry-specific vertical search engines.

    Indonesian SEO

    Specialist SEO.com is an Indonesian SEO Service launched in 2011 when search engines were in the early stages of developing their algorithms, Google was a big company that was very promising. Search engine optimization (SEO) has a completely different meaning. Since then many things have changed and internet marketing has become a necessity for every company that wants to survive in the online world competitively.

    Specialist SEO Indonesia SEO Services deal with Web Marketing technology from the start. After hours of research and development, trial and error, we can now offer the most reliable solutions in the world of Digital Marketing.

    Indonesian SEO Service

    You can chat, video call, phone, view photos, have fun, and even meet!
    online datingsite, online dating indonesia, free online dating, best online dating site free, online dating app, online dating terbaik, dating online chat, situs online dating, free dating sites without payment, dating online with video call, dating, meet me, meet, people nearby, soulmate, heart, online dating apps, free online dating, video call, audio chat, find your partner, setipe, skout, flurv, bigo live, Tinder, OkCupid, Hookup, BeeTalk
    online dating site

    ReplyDelete
  59. dompetpoker.online is a card game that shares betting rules and is usually (but not always) in hand ranking. The Poker Online game is different in terms of how cards are shared. In the most modern Poker Games, the first round of betting starts with several forms. Type of card arrangement in Online Poker.

    poker online

    Choosing an online casino agent is essential if people want to work on online gambling. http://www.dompetcasino.club/ to make the play scene should really be done so that the smoothness in playing gambling can be enjoyed gambling agency sites online casino agency page can also be done with a system of observing recommendations and recommendations from more experienced players.
    judi online

    ReplyDelete
  60. Welcome to asetqq.vip, the Best and Most Trusted Indonesian Online Poker Site. AsQQQ provides 6 games that can be played in 1 User Id only. Online Poker, DominoQQ, Bandar Ceme, Capsa Susun, Live Poker, Ceme Keliling Games, using Indonesian real money
    poker online

    jdk88.id/ is the jadwal bola, first trusted online betting agent in Indonesia that provides live baccarat, roulette and sicbo online services. Giving customer satisfaction and serving better than others.
    Always determined to be able to serve customers better. Trying to remain a Soccer Agent, Casino Agent, the best and most trusted Online Betting in Indonesia
    Jadwal bola

    Onekartu is a trusted online poker agent Site. Original Money Poker uses IDNPlay servers that are 100% proven trusted and fairplay. Deposit and Withdraw Process in Crotqq start from 10 thousand rupiah and with fast and safe process. Customer Service Crotqq is available 24 hours to help you if you are having problems. onekartu.net is always trying to become a trusted online poker agent for those of you who want a Fairplay Poker game.

    poker uang asli

    AGWbet is an online gambling agent that is an online casino agent, online casino, online casino, online casino, online casino, online casino, and more. AGWbet has collaborated with several Indonesian local banks such as BCA, BRI, BNI and independently to improve services in the deposit and withdrawal process.

    agen bola terpercaya

    ReplyDelete
  61. programming made easy.
    https://www.homyonline.com

    ReplyDelete
  62. By painting them you can use Swami Rajender ji Black magic specialist in kanpur, from another time in order to be changed (call now @ 8725088250).

    Visit Now :-

    Black Magic Specialist In Kanpur
    Vashikaran Specialist In Kanpur

    Black Magic Specialist Kanpur

    Vashikaran Specialist Kanpur

    ReplyDelete
  63. The article you have shared here is awesome. I really like and appreciate your work. The points you have mentioned in this article are useful.






    Packers and movers in vashi
    Packers and movers in CBD Belapur

    ReplyDelete
  64. I am very much happy to find this post. I have read this post very carefully i like this post. Thanks for such a great post.




    Packers and Movers in Dighi
    Packers and Movers in Akurdi
    Packers and Movers in Handewadi

    ReplyDelete
  65. Its really amazing blog with very much helpful information, thank you so much for writing this great blog here for us.






    CPA firm in Dallas
    CPA in Austin
    Tax Preparation Services in Fort Worth

    ReplyDelete
  66. Tatkal Railway Ticket Agent gives you the best cheap rate of railway ticket booking Chandigarh, railway ticket booking Chandigarh, Confirmed Tatkal Ticket Booking Chandigarh Call @ 9999606515.

    Tatkal Rail ticket agent

    train ticket agents in delhi

    confirm train book Chandigarh

    Railway Ticket Booking Agent

    ReplyDelete
  67. Tip top escort girls are dependably on appeal so in the event that you need to invest your energy with them you have to book your arrangement earliest.If you are intending to take escort

    paschim vihar escorts
    patel nagar escorts
    patparganj escorts
    pitampura escorts
    preet vihar escorts
    punjabi bagh escorts
    rajouri garden escorts
    rk puram escorts

    ReplyDelete
  68. sharing information is the most noble thing. Thank you for providing information in your article.

    Penyebab Tipes Sering Kambuh

    Buah-Buahan Untuk Penderita Tipes

    ReplyDelete
  69. . Escort girls who work as independent escort in Delhi are just too hot to handle. You must contact such girls who are always ready to fulfill your sexual and mental need

    jangpura escorts
    vasundhara escorts
    kaushambi escorts
    vaishali escorts
    indirapuram escorts
    noida escorts
    udaipur escorts
    hyderabad escorts
    ghaziabad escorts
    dhaula kuan escorts

    ReplyDelete
  70. Love marriage specialist astrologer Pandit Hari Ram Ji provides a reputable person call @ 7837876237 with the best and authentic services in the love marriage astrology in India.

    Love Problem Solution ####
    Vashikaran Specialist ####
    Love Marriage Specialist ####
    Vashikaran For Love ####
    Vashikaran For Love ####
    Black Magic For Love ####
    Vashikaran For Love ####

    ReplyDelete
  71. Astrologer in Canada, Astrologer in Brampton, Astrologer in Hamilton, Astrologer in Winnipeg, Astrologer in Surrey, Astrologer in Toronto, Astrologer in Vancouver, Astrologer in Ottawa, Astrologer in Calgary

    Visit Now :-

    Astrologer in toronto

    Astrologer in vancouver

    Astrologer in ottawa

    Astrologer in calgary

    Astrologer in edmonton

    Astrologer in Montreal

    Love problem solution canada

    ReplyDelete
  72. Astrologer in Canada, Astrologer in Brampton, Astrologer in Hamilton, Astrologer in Winnipeg, Astrologer in Surrey, Astrologer in Toronto, Astrologer in Vancouver, Astrologer in Ottawa, Astrologer in Calgary

    Visit Now :-

    Astrologers in Canada

    http://www.astrologerincanada.ca/about-us.html

    http://www.astrologerincanada.ca/contact-us.html

    Astrologer in Brampton

    Astrologer in hamilton

    Astrologer in winnipeg

    Astrologer in Surrey

    ReplyDelete
  73. There will be problems as well. Vashikaran Specialist In Mumbai But it might so Aghori ji happen that problems can be Call Now @ 9517888489.

    Visit Now :-

    Vashikaran specialist in delhi ####
    Vashikaran specialist in mumbai ####
    Vashikaran specialist in pune ####
    Vashikaran specialist in bangalore ####
    Vashikaran specialist in hyderabad ####
    Vashikaran specialist in chennai ####

    ReplyDelete
  74. There will be problems as well. Vashikaran Specialist In Mumbai But it might so Aghori ji happen that problems can be Call Now @ 9517888489.

    Visit Now :-

    Vashikaran specialist in surat ####
    Vashikaran specialist in Vadodara ####
    Vashikaran specialist in kolkata ####
    Vashikaran specialist in chandigarh ####
    Vashikaran specialist in jaipur ####

    ReplyDelete
  75. This ancient practice has not still lost its value and significance Aghori ji has so many uses in people’s life.(Call Now 9517888489).

    Visit Now :-

    Black magic specialist in Delhi ####
    Black magic specialist in pune ####
    Black magic specialist in mumbai ####
    Black magic specialist in Bangalore ####
    Black magic specialist in hyderaBad ####
    Black magic specialist in chennai ####
    Black magic specialist in surat ####

    ReplyDelete
  76. This ancient practice has not still lost its value and significance Aghori ji has so many uses in people’s life.(Call Now 9517888489).

    Visit Now :-

    Black magic specialist in vadodara ####
    Black magic specialist in kolkata ####
    Black magic specialist in chandigarh ####
    Black magic specialist in jaipur ####
    Vashikaran specialist delhi ####
    Vashikaran specialist pune ####
    Vashikaran specialist mumbai ####
    Black magic specialist vadodara ####

    ReplyDelete
  77. If you are looking Best Movers and Packers in Pune then Packers and Movers in Pune is the right place to fulfill all your packing and moving shifting services needs. Having the industry experience and expertise, our services are offered for home, business and local shifting, corporate and domestic relocation, car transportation services to our clients. We provide best packers and movers in hyderabad also at very affordable price.
    list of packers and movers in pune
    packers and movers pune rates
    Packers Movers in Pune Sitemap
    packers and movers in hyderabad charges

    ReplyDelete
  78. This website is very worth visiting because it often provides interesting information.
    Obat Alami Syok Kardiogenik

    ReplyDelete
  79. Packers and Movers in Hyderabad understand basic requirement of client and give perfect solution of all type of packing and moving service problem @ Packers and Movers in Hyderabad

    ReplyDelete
  80. Hello everyone, if you want to get proper sexual satisfaction by our exoert and young girls. contact us on :-9873940964. you will be guaranteed satisfied. for get more details visit my website :- Chanakyapuri Escorts
    Connaught Place Escorts

    ReplyDelete


  81. https://tvskybox.com
    7500 iptv channels only 5 euro/usd
    /europe/usa/asia/arabic/latino/russian channels....

    ReplyDelete
  82. Mahipalpur Call Girls | 9999965857 | Book Escorts in Mahipalpur at Hotels

    mahipalpur escorts $$$$$$
    chanakyapuri escorts $$$$$$
    aerocity escorts $$$$$$
    malviya nagar escorts $$$$$$
    crossing republik escorts $$$$$$

    ReplyDelete
  83. Escorts Service in Connaught Place 9711199171 Incall Connaught Place Escorts


    connaught place escorts $$$$
    nehru place escorts $$$$
    chanakyapuri escorts $$$$
    mahipalpur escorts $$$$
    vasant kunj escorts $$$$

    ReplyDelete
  84. Thanks for sharing this blog, this blog is very helpful information for every one.
    Mobile app Development Company in Noida

    ReplyDelete
  85. We just not transport your goods, we do full management for your relocation and make it a pleasant experience for you. Packers and Movers in Pune takes his job seriously and honesty to do what best for customers, that has made us reliable and recommended Domestic packing and moving service provider in Pune and other major cities in India.
    Packers and Movers in Mumbai
    list of packers and movers in pune
    Movers and Packers in Kalyani Nagar
    Movers and Packers in Pimple Gurav
    Movers and Packers in Nigdi
    Movers and Packers in Ravet
    movers and packers in hyderabad
    packers and movers in hyderabad charges

    ReplyDelete
  86. Most impressive Topic and Blog, this is very helpful Information. thanks for sharing.
    School Management Software in Delhi

    ReplyDelete
  87. Cheap essay writing can be top-notch on https://speedypaper.app/.

    ReplyDelete
  88. vasant kunj Escorts for Gathering, Private & Get-togethers. Our Premium, Excellent and High-Class vasant kunj escorts will satisfy your dreams. An organization that offers Outcall benefits in all vasant kunj zones. Additionally, we offer modest vasant kunj escorts administrations. Book now

    defence colony escorts ##
    south ex escorts ##
    mukherjee nagar escorts ##
    safdarjung enclave escorts ##
    chatarpur escorts ##
    chanakyapuri escorts ##
    mehrauli escorts ##

    ReplyDelete
  89. Delhi Escorts Service available for bookings 9711199171 , Fulfill your sexual dream with Independent Call Girls Delhi, You can Hire Models vila Call Girls in Delhi for hotels and beaches. Fulfill your wish and find Independent Call Girls in Delhi.


    delhi escorts $$$
    gurgaon call girls $$$
    udaipur escorts $$$
    raipur escorts $$$
    noiad escorts $$$

    ReplyDelete
  90. Visit PaperCoach, a students’ essay writing service. There, you will find assistance with any issue related to the study.

    ReplyDelete
  91. Call 09873940964make your evening and night much colorful with our independent Ghaziabad Escorts girls because we always know they will satisfy you from top to bottom

    sahibabad escorts $$$
    shipra suncity escorts $$$
    gaur city escorts $$$
    govindpuram escorts $$$
    abhay khand escorts $$$
    niti khand escorts $$$
    gyan khand escorts $$$

    ReplyDelete
  92. I truly like to reading your post. Thank you so much for taking the time to share such nice information. Waiting for the new posts.

    boxes supply Calgary

    ReplyDelete
  93. Thanks, This is really important one, and information. Keep sharing on more information.Astrology Center in Edmonton | Famous Indian Astrologer in Edmonton | No 1 Astrologer in Edmonton

    ReplyDelete
  94. Thanks for sharing this blog, this blog is very helpful information for every one.
    Mobile app Development Company in Noida

    ReplyDelete
  95. Aerocity escorts|9999965857 | Independent escorts service in Aerocity

    aerocity escorts ?????
    defence colony escorts ?????

    ReplyDelete
  96. Get Shifting/Relocation Quotation from ###Packers and Movers Delhi. Packers and Movers Delhi 100% Affordable and Reliable ***Household Shifting Services. Compare Transportation Charges and Save Time, Verified and Trusted Packers and Movers in Delhi, Cheap and Safe Local, Domestic House Shifting @
    Packers and Movers Delhi

    ReplyDelete

  97. Thanks for your great and helpful presentation I like your good service. I always appreciate your post. That is very interesting I love reading and I am always searching for informative information like this.iot training institutes in chennai | industrial iot training chennai | iot course fees in chennai | iot certification courses in chennai
    |

    ReplyDelete
  98. Beautiful call girls faridabad and modal girls,faridabad escorts,full service here call:-9873940964

    new friends colony escorts ##
    paschim vihar escorts ##
    saket escorts ##
    south ex escorts ##
    surajkund escorts ##
    vaishali escorts ##
    vasant kunj escorts ##

    ReplyDelete
  99. This is the official page for Packers and Movers chandigarh. With the expertise in the packing and moving services, our branch at chandigarh has been professionally delivering satisfying outcomes the people across India.Call Us - 9001694151.

    packer and movers in chandigarh $$$$
    packer and movers chandigarh $$$$
    movers and packers chandigarh $$$$
    movers and packers in chandigarh $$$$
    packers and movers kharar $$$$
    packers and movers solan $$$$

    ReplyDelete

  100. Packers and Movers Pune Provide High Quality ***Household Shifting, Home/Office Relocation, Insurance, Packing, Loading, ###Car Transportation Service Pune and High experiences, Top Rated, Safe and Reliable, Best and Secure Packers and Movers Pune Team List. Get ✔✔✔ Affordable Rate Charts and Compare Quotation and Save Money and Time .
    Packers And Movers Pune

    ReplyDelete
  101. I was suffering from Warts Simplex Virus, i was totally depressed due to my predicament , until i meet Dr Nana the great Traditional healer who cured me. you can also contact him now on whatsapp +2347014784614.or via email:on drnanaherbalsolutionhome@gmail .com for more information.




    I was suffering from Warts Simplex Virus, i was totally depressed due to my predicament , until i meet Dr Nana the great Traditional healer who cured me. you can also contact him now on whatsapp +2347014784614.or via email:on drnanaherbalsolutionhome@gmail .com for more information.

    ReplyDelete
  102. get exclusive night call girls in delhi. we provide only hot and sexy call girls in your location. all type of call girls are available. contact 9873777170 http://www.exclusivenightgirls.com/gallery-russian-escort-service-delhi.html
    Delhi Escorts

    saket escorts service

    karol bagh escorts service

    dwarka escorts service

    nehru place escorts service

    mahipalpur escorts service

    vasant kunj escorts service

    south ex escorts service

    chanakyapuri escorts service

    ReplyDelete
  103. Spot on with this write-up, I actually think this website needs far more attention. I’ll probably be back again to read more, thanks for the info!

    Happy Rose Day Images And Quotes 2019
    Happy Purpose Day Quotes 2019
    Happy Chocolate Day Quotes 2019
    Happy Hug Day Images And Quotes Free Download
    Happy Kiss Day Images And Quotes Freee Download

    ReplyDelete
  104. Hire Best Packers And Movers Mumbai for hassle-free Household Shifting, ***Office Relocation, ###Car Transporation, Loading Unloading, packing Unpacking at affordable ✔✔✔ Price Quotation. Top Rated, Safe and Secure Service Providers who can help you with 24x7 and make sure a Untroubled Relocation Services at Cheapest/Lowest Rate
    Packers And Movers Mumbai

    ReplyDelete
  105. Thanks for sharing this blog, this blog is very helpful information for every one.
    Mobile app Development Company in Noida

    ReplyDelete
  106. The information you submit is very useful, hopefully it will be better in the future.

    Gejala Tumor Hati Pada Anak
    Buah-Buahan Untuk Mencegah Tumor Hati

    ReplyDelete
  107. Packers and Movers Chennai Give Safe and Reliable ***Household Shifting Services in Chennai with Reasonable ###Packers and Movers Price Quotation. We Provide Household Shifting, Office Relocation, ✔✔✔Local and Domestic Transportation Services, Affordable and Reliable Shifting Service Charges @
    Packers And Movers Chennai

    ReplyDelete
  108. Packers And Movers Bangalore Local Household Shifting Service, Get Free Best Price Quotes Local Packers and Movers in Bangalore List , Compare Charges, Save Money And Time @ Packers And Movers in Bangalore

    ReplyDelete
  109. Packers and Movers Bangalore as a Services providing company can make all the difference to your ###Home Relocation experience. Bangalore based Company which offers versatile solutions, Right team that easily reduce the stress associated with a ✔✔✔Household Shifting, ***Vehicle Transportation. we help things run smoothly and reduce breakages and offer you seamless, Affordable, Reliable Shifting Services, Compare Shifting Charges @
    Packers And Movers Bangalore

    ReplyDelete
  110. Thanks for sharing this blog, this blog is very helpful information for every one.
    Mobile app Development Company in Noida

    ReplyDelete
  111. Packers and Movers Gurgaon Provide Reliable, Safe and Certified Service Provider list, Get Free ***Best Price Quotaition and Compare Charges. ✔✔✔ Hassle free Household Shifting Services, High Quality packing Material, Office Relocation, Car Transportaion, ###Local and Domestic Shifting Service @
    Packers And Movers Gurgaon

    ReplyDelete
  112. Local Packers and Movers Bangalore List, Get Best Price Quotes, Compare Movers and packers Charges, Top, Local Household Shifting Services
    Packers And Movers Bangalore

    ReplyDelete
  113. Get Packers and Movers Jaipur List of Top Reliable, 100% Affordable, Verified and Secured Service Provider. Get Free ###Packers and Movers Jaipur Price Quotation instantly and Save Cost and Time. Packers and Movers Jaipur ✔✔✔Reviews and Compare Charges for household Shifting, Home/Office Relocation, ***Car Transportation, Pet Relocation, Bike SHifting @
    Packers And Movers Jaipur

    ReplyDelete
  114. Packers and Movers Chennai Give Safe and Reliable ***Household Shifting Services in Chennai with Reasonable ###Packers and Movers Price Quotation. We Provide Household Shifting, Office Relocation, ???Local and Domestic Transportation Services, Affordable and Reliable Shifting Service Charges @

    Packers And Movers Chennai

    ReplyDelete
  115. Packers And Movers Bangalore Local Household Shifting Service, Get Free Best Price Quotes Local Packers and Movers in Bangalore List , Compare Charges, Save Money And Time @ Packers And Movers in Bangalore

    ReplyDelete
  116. In the event that suicidal behavior has been noticed in patients, hospitalization is vital. In some cases of major depression, ECT is used.
    psychiatrist in bhopal
    psychologist in bhopal
    Depression treatment in Bhopal
    OCD treatment in Bhopal

    ReplyDelete
  117. Welcome to VIP Delhi Escorts, the escort agency with the excellent skills of love making. Our Call Girls service in Delhi can make anyone happy because we are available 24/7. You can feel free to call us: 9873940964 anytime.

    ghaziabad escorts ###
    faridabad escorts ###
    noida escorts ###
    greater kailash escorts ###
    call girls in delhi ###
    independent delhi escorts ###

    ReplyDelete
  118. The foundation of Weborbit Solutions was mainly through an initiative taken by a group of enthusiast.The Premier Business Service provider is mainly catering to the IT and the branding sector. Hence Weborbit is having the basic concept to lead you digitally.

    Best Web Design Company in kolkata

    Best Web Development Company in kolkata

    Best Android App Development Company in kolkata

    ReplyDelete
  119. Get Shifting/Relocation Quotation from ###Packers and Movers Delhi. Packers and Movers Delhi 100% Affordable and Reliable ***Household Shifting Services. Compare Transportation Charges and Save Time, Verified and Trusted Packers and Movers in Delhi, Cheap and Safe Local, Domestic House Shifting @
    Packers and Movers Delhi

    ReplyDelete
  120. sharing information is the most commendable thing, hopefully it can continue like that.

    Cara Mengobati Infeksi Usus Besar Secara Alami

    ReplyDelete
  121. What you present today is quite interesting to visit.
    Obat Cedera Lutut Pada Orang Dewasa

    ReplyDelete
  122. The points you have mentioned in this article information are helpful for me, Thank you for share this awesome blog with us.
    Jeans Supplier in Delhi

    ReplyDelete
  123. The points you have mentioned in this article are useful for me, Thanks for share this good blog information.
    floor marking paint

    ReplyDelete
  124. Thank you for share this information, I like to read your Points you have mentioned in this article are helpful for me,
    web development company in delhi

    ReplyDelete
    Replies
    1. The foundation of Weborbit Solutions was mainly through an initiative taken by a group of enthusiast.The Premier Business Service provider is mainly catering to the IT and the branding sector. Hence Weborbit is having the basic concept to lead you digitally.

      Best Web Design Company in kolkata


      Best Android App Development Company in kolkata

      Best Android App Development Company in kolkata


      Delete
  125. Thank you so much for share this article, I like to read your information you have mentioned in this article are helpful for me,
    North India Motorcycle Tour

    ReplyDelete
  126. Thank you so much for share this great idea, I like to read your information you have mentioned in this article are helpful for me,
    Lifestyle Magazine

    ReplyDelete
  127. Thank you for share this superb idea, I like to read your information you have mentioned in this article are really useful for me,
    Sea Freight Company in Delhi

    ReplyDelete
  128. Thanks for sharing such a great blog... I am impressed with you taking time to post a nice info.
    Mobile App Development Company in India

    ReplyDelete
  129. The foundation of Weborbit Solutions was mainly through an initiative taken by a group of enthusiast.The Premier Business Service provider is mainly catering to the IT and the branding sector. Hence Weborbit is having the basic concept to lead you digitally.
    Best Web Development Company in kolkata

    Best Android App Development Company in kolkata

    ReplyDelete
  130. Independent noida Escorts | i am an independent call girl | you can visit me for fun. get full satisfaction. Call: 09873940964 | visit = http://anushkadas.in/contact.html noida Call Girls
    East Of Kailash Escorts

    Govindpuri Escorts

    Green Park Escorts

    Gtb Nagar Escorts

    Janakpuri Escorts

    Jj Colony Escorts

    Ajmeri Gate Escorts

    Anand Vihar Escorts

    Ashram Escorts

    ReplyDelete
  131. This comment has been removed by the author.

    ReplyDelete
  132. I like the information you submit, hopefully it's better again.
    Kulit Menguning dan Disertai Perut Bengkak

    ReplyDelete
  133. Independent Call Girls in Delhi | Service available 24*7 hours | Call Us +91-9899900591 | Independent Housewives are availableat your nearest location | visit us at = http://www.sexydelhicityescorts.com/
    Delhi Call Girls💋
    *-*
    Delhi Escort Service💋
    *-*
    Female Escorts in Delhi💋
    *-*
    Call Girls in Saket 💋
    *-*
    Laxmi Nagar Call Girls💋
    *-*

    ReplyDelete
  134. Female Escort Services in Connaught Place. i am an independent call girl so i provide my fun service independently. i am available for both incall or out call services. Visit https://anushkaaggarwal2.blogspot.com/ or Call 9999965857
    paschim vihar Escort Service ***

    tilak nagar Escort Service ***

    saraswati vihar Escort Service ***

    vivek vihar Escort Service ***

    preet vihar Escort Service ***

    paharganj Escort Service ***

    karol bagh Escort Service ***

    indirapuram Escort Service ***

    vaishali Escort Service ***

    ReplyDelete
  135. The foundation of Weborbit Solutions was mainly through an initiative taken by a group of enthusiast.The Premier Business Service provider is mainly catering to the IT and the branding sector. Hence Weborbit is having the basic concept to lead you digitally.

    Best Web Design Company in kolkata


    Best Web Development Company in kolkata

    Best Android App Development Company in kolkata

    Best Website Development and Design Company in kolkata


    Best Website Development Low Cost in Kolkata

    ReplyDelete

Add a comment. Registration required because trolls.