小编Hid*_*n14的帖子

如何检查firebase数据库值是否存在?

我正在使用谷歌Firebase的实时数据库,我正在尝试检查一个孩子是否存在.

我的数据库结构如下

- / (root)
-   /users/
–-    /james/
--    /jake/
-   /rooms/
--    /room1/
---      (room 1 properties)
--    /room2/
---      (room 2 properties)
Run Code Online (Sandbox Code Playgroud)

我想检查room1是否存在.我尝试过以下方法:

let roomName:String = "room1"
roomsDB.child(roomName).observeSingleEventOfType(.Value) { 
(snap:FIRDataSnapshot) in
    let roomExists:Bool = snap.value != nil ? "TAKEN" : "NOT TAKEN"
 }
Run Code Online (Sandbox Code Playgroud)

在访问snap.value它时返回该房间属性的JSON,但我如何检查room(/rooms/room1/)是否在那里开始?

评论是否需要澄清

firebase swift firebase-realtime-database

35
推荐指数
3
解决办法
5万
查看次数

在这个例子中,0xFFFFFFFF是做什么的?

我知道arc4random返回一个无符号整数,最大为(2 ^ 32)-1.在这种情况下,它总是给出0到1之间的数字.

var x:UInt32 = (arc4random() / 0xFFFFFFFF)
Run Code Online (Sandbox Code Playgroud)

如何除以0xFFFFFFFF导致数字介于0 - 1之间?

swift swift2

6
推荐指数
1
解决办法
729
查看次数

使用SQLAlchemy ORM作为非主键,唯一的自动递增ID

当我运行以下代码时,我期望first_name和last_name是复合主键,并且id是行的自动递增索引,但不充当主键,因为其余信息我需要定义表的唯一性,而不是给定的ID。

Base = declarative_base()
Session = sessionmaker(bind=db)
session = Session()

class Person(Base):
    __tablename__ = "people"
    id = Column(Integer, index=True, unique=True, autoincrement=True, primary_key=False)
    first_name = Column(String(30), primary_key=True)
    last_name = Column(String(30), primary_key=True)

if __name__ == "__main__":
    Base.metadata.create_all(db)
    session.add_all([
        Person(first_name="Winston", last_name="Moy"),
        Person(first_name="Bill", last_name="Gates"),
        Person(first_name="Steve", last_name="Jobs"),
        Person(first_name="Quinten", last_name="Coldwater")
    ])
    session.commit()
Run Code Online (Sandbox Code Playgroud)

我在DataGrip中查看结果的问题,正在获取下表。数据未按添加顺序排序,并且id列为null,而不是我期望的自动递增整数。 人表的图像

需要明确的是:我的问题是:如何为不是主键的SQLAlchemy ORM类创建自动增量索引?

python mysql sqlalchemy flask-sqlalchemy

6
推荐指数
1
解决办法
1444
查看次数

C int数组和指针交互

以下代码......

int array[] = {17, 18, 19};
printf("Location of array: %p\n",       array);
printf("   Value of array: %d\n",       *array);
printf("    Size of array: %d bytes\n", sizeof(array));
Run Code Online (Sandbox Code Playgroud)

产生输出

Location of array: 0x7ffd0491c574
   Value of array: 17
    Size of array: 12 bytes
Run Code Online (Sandbox Code Playgroud)

当我在第二行使用变量数组时,它指的是"17"的位置.当我在第三个上使用它时,它取消引用指针并打印出数字17.这些,我理解.

在最后一行,它打印出"12字节"作为数组的大小.为什么不打印出4个字节,因为在前两个使用同一个变量时,它似乎只能引用数组的零索引?如何sizeof知道查看数组的其余部分,而不是只打印4个字节(就像我运行时那样(sizeof(*array))?

c arrays pointers

1
推荐指数
1
解决办法
197
查看次数