android - Firestore 如何命名从 POJO 设置的文档中的键?

标签 android firebase google-cloud-firestore

我想了解当我们从自定义 Java 对象设置时,Firestore 如何为文档中的每个值命名键。直觉上以为一定是Java类中的字段名,其实不然。

相反,它似乎来自 getter 方法名称。对吗?

String title = editTextTitle.getText().toString();
String description = editTextDescription.getText().toString();

Note note = new Note(title, description);

noteRef.set(note)

最佳答案

Firestore 遵循 Java Bean 属性命名约定来映射 Java 对象和文档中的字段。

注意:这与 Firebase 实时数据库使用的逻辑相同。虽然您不使用它,但了解这一点可能会更容易找到类似的示例。

以下是特定方法名称如何映射到属性名称(以及此字段名称)的一些示例:

public String getName(); // getter for property "name"
public void setName(String name); // setter for property "name"

public String getUserName(); // getter for property "userName"
public void setUserName(String name); // setter for property "userName"

public bool isAdmin(); // getter for property "admin"
public bool setAdmin(bool admin); // setter for property "admin"

不强制使用 getter 和 setter。在所有这些情况下,您也可以不使用 getter/setter 而使用一个公共(public)字段:

public String name;
public String userName;
public bool admin;

最后:也不需要同时拥有 getter 和 setter。如果你只有一个getter,Firebase会直接设置相应的字段。但是,这确实要求您的字段名称遵循命名约定,以便 Firebase 可以找到要设置的正确字段。

关于android - Firestore 如何命名从 POJO 设置的文档中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751481/

相关文章:

java - RxJava 运算符

ionic-framework - 在 Firestore 中以较少的读取获取好友列表数据

ios - 显示最近的问题 clang : error: linker command failed with exit code 1 (use -v to see invocation)?

android - firestore : let users update, 只删除自己的数据

java - Sqlite使用ListView插入数据

android - 更改 ListView 或回收 View 的单个项目的布局

android - 如何避免 ARCore 中的 "FrameHitTest while not tracking. Returning empty list. error message"?

android - 当我尝试上传新的时,我的 firebase 功能被删除了

node.js - Firebase 云消息传递 : Request contains an invalid argument

firebase - Firebase 的云功能 - 即使我正在为 firebase-admin 功能发出出站 http 请求,也会出现网络错误