Firebase数据库和搜索功能

时间:2018-04-06 04:15:44

标签: android firebase firebase-realtime-database

我需要firebase数据库的帮助, 我愿意为像加尔各答这样的城市创建一个应用程序,在不同的本地站之间找到公共汽车,我想将数据保存在数据库中,用户将输入他们想去的地方,点击搜索后,可用数据列表将会显示, 但是我需要帮助我应该如何保存数据以便用较简单的代码轻松获取数据。

2 个答案:

答案 0 :(得分:0)

您可以使用firebase轻松保存数据

from PIL import Image
import glob

file_list = glob.glob('images_pre/*.jpg')

for f in file_list:
        image = Image.open(f)
        # image = image.resize((170, 170), Image.ANTIALIAS)
        print('image pre: ' + str(image))
        image = image.thumbnail((128, 128), Image.BICUBIC)
        print('image post: ' + str(image))
        file_name = f.split('/')[-1]
        try:
                image.save('images_post/'+file_name, "JPEG")
        except AttributeError:
                print('image failed to save: ' + str(image))

您可以从firebase中搜索,如下所示

private void writeNewUser(String userId, String name, String email) {
    User user = new User(name, email);
    mDatabase.child("users").child(userId).setValue(user);
}

修改

Firebase没有内置搜索功能的优秀SQL。您可以按值/键排序,也可以等于

https://firebase.google.com/docs/database/android/retrieve-data

有关详细信息,请查看基础文档

https://firebase.google.com/docs/database/android/read-and-write

答案 1 :(得分:0)

当您将数据写入使用以下代码的firebase数据库时。

为插入数据制作pojo类..

public class City {
public String name, code;

public City(String name, String code) {
    this.name = name;
    this.code = code;
}

}

然后将数据插入到代码下面使用的firebase中。

private DatabaseReference mFirebaseDatabase;
private FirebaseDatabase mFirebaseInstance;
    @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.register_layout);
    mFirebaseDatabase = mFirebaseInstance.getReference("usersDb/UserTable");//define your database name and table name

}

//下面的方法使用插入数据..

    private void insertData(){
    City city=new City("Ahmedabad","380016"); // you can add data also runtime.
    mFirebaseDatabase.child(city.name).setValue(user);

}

//下面用于搜索数据的方法..

    private void sqlQuery(){
    DatabaseReference reference = FirebaseDatabase.getInstance().getReference();

    Query query = reference.child("usersDb").child("UserTable").orderByChild("name").equalTo("vikas@gmail.com");
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {

                for (DataSnapshot issue : dataSnapshot.getChildren()) {
                    Log.d("Value::",issue.getValue(User.class).email);
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}